在 Linux 机器中启动 minikube 需要通过 Google Container Registry 进行身份验证,为什么?

Mik*_*ilV 2 virtualbox docker kubernetes google-container-registry minikube

我目前正在学习 Kubernetes,并且正在使用 minikube 工具。我决定在运行 ubuntu/xenial64 的 VirtualBox 实例中安装该工具。我已使用 Vagrant 创建了此实例,并通过 ssh 连接了该实例。\n我已根据工具文档安装了 minikube - https://minikube.sigs.k8s.io/docs/start/。\n当我运行时:\n $ minikube start,\nit 失败并显示以下消息:

\n\n
$ minikube start\n  minikube v1.11.0 on Ubuntu 16.04 (vbox/amd64)\n\xe2\x9c\xa8  Using the docker driver based on existing profile\n  Starting control plane node minikube in cluster minikube\n  Pulling base image ...\n  Unfortunately, could not download the base image gcr.io/k8s-minikube/kicbase:v0.0.10 \n\xe2\x9d\x97  In order to use the fall back image, you need to log in to the github packages registry\n  Please visit the following link for documentation around this: \n    https://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages#authenticating-to-github-packages\n\n  Please either authenticate to the registry or use --base-image flag to use a different registry.\n
Run Code Online (Sandbox Code Playgroud)\n\n

由于某种原因,为了下载 minikube 基础镜像,需要通过 gcr.io 注册表(Google 容器注册表)进行身份验证。minikube 文档没有提及此要求。我想知道为什么会这样。我的理解是,为了使用 minikube,不应该强制拥有 gsr 帐户。我做错了什么?\nminikube 依赖的 kicbase 容器 (KIC) 是什么?\n我很感谢对此问题的任何帮助。谢谢。

\n

rob*_*aos 7

第一个答案仅解释了这里问题的一部分。您真正的问题是您可能需要代理进行通信gcr.io/k8s-minikube/kicbase(或者您位于受限网络中),如下所述: https: //github.com/kubernetes/minikube/issues/8124#issuecomment-628172092。如果您在 VPN 下运行,则尤其如此。

\n\n

就我而言,我无需代理即可获取docker pull图像kicbase

\n\n
$ docker pull gcr.io/k8s-minikube/kicbase:v0.0.10\nTrying to pull repository gcr.io/k8s-minikube/kicbase ... \nv0.0.10: Pulling from gcr.io/k8s-minikube/kicbase\nDigest: sha256:f58e0c4662bac8a9b5dda7984b185bad8502ade5d9fa364bf2755d636ab51438\nStatus: Image is up to date for gcr.io/k8s-minikube/kicbase:v0.0.10\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,我可以使用以下命令启动 minikube:

\n\n
$ minikube start --base-image=gcr.io/k8s-minikube/kicbase:v0.0.10\n  minikube v1.11.0 on Centos 7.8.2003\n\xe2\x9c\xa8  Using the docker driver based on existing profile\n  Starting control plane node minikube in cluster minikube\n  Creating docker container (CPUs=2, Memory=2200MB) ...\n  Preparing Kubernetes v1.18.3 on Docker 19.03.2 ...\n    \xe2\x96\xaa kubeadm.pod-network-cidr=10.244.0.0/16\n  Verifying Kubernetes components...\n  Enabled addons: default-storageclass, storage-provisioner\n  Done! kubectl is now configured to use "minikube"\n
Run Code Online (Sandbox Code Playgroud)\n\n

我还建议您检查 docker 上的映像 ( docker images) 并删除 ( docker rmi) 旧版本kicbase(我这里有版本 v0.0.7、v0.0.8 和 v0.0.10)。

\n\n

如果手册也docker pull不能解决您的问题,您确实需要设置代理。这里有关于如何做到这一点的很好的参考

\n\n

编辑:添加了一些有关如何配置代理的信息。

\n