【问题标题】:Why can't my kubernetes cluster in GKE pull from gcr.io?为什么我在 GKE 中的 kubernetes 集群无法从 gcr.io 中提取?
【发布时间】:2019-03-06 17:20:34
【问题描述】:
作为部署过程的一部分,我创建了一个集群,登录到 gcr.io,然后在那里发布图像。
我的 pod 部署失败,因为容器使用的镜像无法访问。他们肯定在那里。让我困惑的是,kubenetes 集群用于访问 gcr.io 的服务帐户是什么?我会认为它是我用来创建集群的同一个,它应该具有对 gcr.io 的访问权限。
如何查看我的集群使用的服务帐号?如何授予它访问 gcr.io 的权限?
【问题讨论】:
标签:
google-kubernetes-engine
google-container-registry
【解决方案1】:
如果您想为服务帐户添加私有 repo 访问权限,请使用此 guide。您将需要创建注册表凭据密钥并使用它修补正确的服务帐户:
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}'
如果您想在 Deployment/Pod 级别添加对私有注册表的访问权限,请使用此guide:
添加注册密码:
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
允许访问您的 Pod/部署:
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: <your-private-image>
imagePullSecrets:
- name: regcred