我已经在kubeadm和docker 18.09.4上安装了K8S,它工作得很好。然后我安装了gcloud,运行了gcloud init并选择激活了gcr的项目,接着是gcloud components install kubectl docker-credentials-gcr,然后是docker-credentials-gcr configure-docker。
在那个阶段,docker可以从我自己的gcr注册表中拉出图像,而kubelet不能。
基本上,如果我运行docker run --rm --name hello gcr.io/own-gcr/hello-world,它会从注册表中拉出映像并启动容器。如果我从本地注册表中删除映像并运行,则会失败,并显示以下描述:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 23s default-scheduler Successfully assigned default/node-hello-6b99957775-9dvvw to lfr025922-docker
Normal BackOff 20s (x2 over 21s) kubelet, lfr025922-docker Back-off pulling image "gcr.io/own-gcr/node-hello"
Warning Failed 20s (x2 over 21s) kubelet, lfr025922-docker Error: ImagePullBackOff
Normal Pulling 9s (x2 over 22s) kubelet, lfr025922-docker Pulling image "gcr.io/own-gcr/node-hello"
Warning Failed 9s (x2 over 21s) kubelet, lfr025922-docker Failed to pull image "gcr.io/own-gcr/node-hello": rpc error: code = Unknown desc = Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication
Warning Failed 9s (x2 over 21s) kubelet, lfr025922-docker Error: ErrImagePull当然,我遵循了https://cloud.google.com/container-registry/docs/advanced-authentication页上的所有说明,但没有一个成功。
您是否知道kubelet 1.14和docker 18.09.5有任何问题?kubelet不应该依赖底层的CRI (这里是docker)吗?你知道是什么导致了这个问题吗?
发布于 2019-04-30 01:13:47
@VasilyAngapov是真的。
我遵循了这里提供的https://container-solutions.com/using-google-container-registry-with-kubernetes/技巧,它工作得很好(在oauth2accesstoken中使用访问令牌)
非常感谢。
https://stackoverflow.com/questions/55906047
复制相似问题