0

在本地环境中,使用spanner的 docker 模拟器来创建开发工具。

如果使用 minikube,在 kubernetes 环境下运行它的 docker,可以启动它的容器

minikube start
eval $(minikube docker-env)
docker run -p 9010:9010 -p 9020:9020 gcr.io/cloud-spanner-emulator/emulator

但无法通过gcloud命令创建实例

gcloud spanner instances create test-env --config=emulator-config --description="Local dev instance" --nodes=1

它变得悬而未决。

当使用没有 minikube 的环境时,我可以启动 docker 并创建一个实例

docker run -p 9010:9010 -p 9020:9020 gcr.io/cloud-spanner-emulator/emulator
gcloud spanner instances create test-env --config=emulator-config --description="Local dev instance" --nodes=1
gcloud spanner instances list

gcloud spanner在 minikube 的 docker-env 下似乎无法运行命令。为什么?

4

2 回答 2

1

eval $(minikube docker-env)将环境配置为使用 minikube 的 Docker 守护程序(https://minikube.sigs.k8s.io/docs/commands/docker-env/

因此,模拟器在 minikube 集群“内部”运行的 docker 域“内部”运行。

您可以通过 ssh 进入 minikube 集群来验证相同的情况,使用ssh minikube查看正在运行的进程列表。然后你可以做一个 curl on http://localhost:9020/v1/projects/test-project/instances,它应该立即返回一个结果。

于 2021-03-15T23:55:36.207 回答
0

这似乎可能是由于端口未暴露。

默认情况下,minikube 只公开端口 30000-32767。您可以使用以下内容进行更改:

minikube start --extra-config=apiserver.service-node-port-range=1-65535

https://minikube.sigs.k8s.io/docs/handbook/accessing/#increasing-the-nodeport-range

于 2021-03-23T21:21:03.153 回答