作为部署过程的一部分,我创建一个集群,登录到gcr.io,然后在其中发布映像。
我的Pod无法部署,因为无法访问容器使用的图像。他们肯定在那里。让我感到困惑的是,kubenetes集群使用哪个服务帐户访问gcr.io?我会以为创建集群时使用的集群是同一集群,该集群应该具有对gcr.io的访问权限。
如何查看群集使用的服务帐户?如何授予其访问gcr.io的权限?
答案 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