部署 Kubernetes 资源时如何拉取私有库镜像?

文章内容

在部署 Kubernetes 资源时,如果 manifest 引用的镜像是存储于私有库的镜像,则需要在 manifest 中配置 imagePullSecrets 才能成功拉取镜像。

以下将会分云账号类型来讨论 imagePullSecrets 配置场景:

腾讯云 TKE

如上图所示,CODING CD 会在 TKE 集群中生成名为 coding-registry-cred-$(user_id)的 Secret,此 Secret 信息可以在 TKE 控制台查看:

云账号添加成功后,可以查看示例用法:

Kubernetes 云账号(非 TKE 集群)

如果通过 Kubeconfig 或 Service Account 凭据添加的 Kubernetes 云账号,在 manifest 引用私有库的镜像时,需要先在 Kubernetes 集群中创建 Secret,以 CODING 私有制品库为例:

在 manifest 中直接引用此私有库的镜像会失败,需要在集群中生成 Secret:

kubectl create secret docker-registry coding-regcred \
--docker-server=您的团队域名 --docker-username=您的邮箱 --docker-password=$(passwd)

创建 Secret 后,在 manifest 中通过imagePullSecrets 配置此 Secret 用于拉取镜像(最后两行):

apiVersion: apps/v1
kind: Deployment
...
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: coding-regcred

阅读更多:Kubernetes 如何从私有仓库拉取镜像

Kubernetes 云账号(TKE 集群)

如果您选择通过 Kubeconfig 或 Service Account 添加 TKE 集群云账号,可以直接在 TKE 控制台创建 Secret。进入集群信息页,点击【配置管理】->【Secret】->【新建】:

需要填写的表单信息对应关系如下:

同样地,创建 Secret 后,在 manifest 中通过imagePullSecrets 配置此 Secret 用于拉取镜像(最后两行):

apiVersion: apps/v1
kind: Deployment
...
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: coding-regcred

上一篇Kubernetes 红黑部署实践
最近更新
感谢反馈有用
感谢反馈没用