为什么我的GKE中的kubernetes集群无法从gcr.io中提取?

时间:2019-03-06 17:20:34

标签: google-kubernetes-engine google-container-registry

作为部署过程的一部分,我创建一个集群,登录到gcr.io,然后在其中发布映像。

我的Pod无法部署,因为无法访问容器使用的图像。他们肯定在那里。让我感到困惑的是,kubenetes集群使用哪个服务帐户访问gcr.io?我会以为创建集群时使用的集群是同一集群,该集群应该具有对gcr.io的访问权限。

如何查看群集使用的服务帐户?如何授予其访问gcr.io的权限?

1 个答案:

答案 0 :(得分:1)

如果您想向服务帐户添加私人回购权限,请使用此guide。您将需要创建注册表凭据机密并使用它来修补正确的服务帐户:

kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}'

如果要在Deployment / Pod级别上添加对私有注册表的访问,请使用以下guide

添加regcred机密:

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