1. 授权认证
  2. 获取用户个人信息
  3. 项目协同
  4. 代码托管
  5. 持续集成
  6. 制品仓库
  7. 测试管理
  1. 项目协同
  2. 代码仓库
  3. DevOps 实践之旅
  4. 一分钟开始持续集成之旅
  5. 持续部署
  6. 制品库

部署 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 红黑部署实践
最近更新
感谢反馈有用
感谢反馈没用