【问题标题】:Can't create spanner instance emulator in minikube无法在 minikube 中创建扳手实例模拟器
【发布时间】:2021-03-10 00:11:05
【问题描述】:

在本地环境,使用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

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

【问题讨论】:

  • 您是否收到有关该问题的错误或任何描述性消息?
  • @llompalles 不,只是待定。
  • 我已尝试重现您的问题,但由于我不确定 emulator-config 中的参数,我无法重现。我认为在Spanner emulator Github 下用一个完整的可重现示例打开这个问题会更合适。

标签: docker google-cloud-platform minikube google-cloud-spanner google-cloud-spanner-emulator


【解决方案1】:

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

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

您可以通过使用ssh minikube SSH 到 minikube 集群来查看正在运行的进程列表来验证这一点。然后,您可以在 http://localhost:9020/v1/projects/test-project/instances 上进行 curl,这应该会立即返回结果。

【讨论】:

    【解决方案2】:

    这似乎是由于端口没有暴露。

    默认情况下,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

    【讨论】:

      猜你喜欢
      • 2018-09-30
      • 1970-01-01
      • 2021-12-23
      • 2012-02-28
      • 2016-12-12
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      • 2010-11-27
      相关资源
      最近更新 更多