我们正在运行内部运行的kubernetes集群。我们有GCR私人存储库。那么我们如何访问我的内部部署kubernetes集群的私有存储库,我知道我们可以使用gcloud-sdk,但是不可能在kubernetes集群的每个节点上安装gcloud-sdk。
答案 0 :(得分:1)
在GKE或GCE上运行的Kubernetes群集有native support for accessing the container registry,无需进一步配置。
正如您提到的那样,您正在运行内部部署群集,而您没有运行任何这些内容,只能使用GCP中的容器注册表,因此,虽然我还没有机会对此进行测试(我不会&#39 ;在Google云外部有一个群集)该流程不应与pulling an image from a private registry.
的流程不同在您的情况下,您可以使用gcr.io注册表的auth凭据创建一个秘密,如下所示:
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
在这种情况下, your-registry-server 可能是https://gcr.io/[your-project-id]
创建名为regcred
的密码后,您可以配置pod以使用它从注册表中提取所需的图像,并添加imagePullSecrets
,如下所示:
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: [The image you want to pull]
imagePullSecrets:
- name: regcred
然后,您可以通过部署此窗格来测试是否正确拉出了图像:
kubectl create -f [your pod yaml]
等待创建pod,然后使用kubectl describe pod private-reg
描述pod并查看类似于以下内容的事件序列:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 4m default-scheduler Successfully assigned private-reg to gke-cluster-22-default-pool-e7830b6c-pxmt
Normal Pulling 4m kubelet, gke-cluster-22-default-pool-e7830b6c-pxmt pulling image "gcr.io/XXX/XXX:latest"
Normal Pulled 3m kubelet, gke-cluster-22-default-pool-e7830b6c-pxmt Successfully pulled image ""gcr.io/XXX/XXX:latest"
Normal Created 3m kubelet, gke-cluster-22-default-pool-e7830b6c-pxmt Created container
Normal Started 3m kubelet, gke-cluster-22-default-pool-e7830b6c-pxmt Started container
答案 1 :(得分:1)
我们曾经在天蓝色的AKS集群上部署pod,以及过去的图像来自GCR。 这些是我们遵循的步骤。
gcloud iam service-accounts keys create gcr-docker-cred.json --iam-account=service-account-name@project-id.iam.gserviceaccount.com
添加kubectl secret。
kubectl create secret docker-registry gcriosecret --docker-server=https://gcr.io --docker-username=_json_key --docker-email=user@example.com --docker-password="$(cat gcr-docker-cred.json)"
在yaml中使用secret
imagePullSecrets:
- name: gcriosecret
此blog可能是一个很好的帮助