1. 项目协同
  2. 代码仓库
  3. DevOps 实践之旅
  4. 一分钟开始持续集成之旅
  5. 持续部署
  6. 制品库

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

文章内容

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

检查 K8s Secret

首先检查 K8s 中是否存在以 coding 开头的 Secret,命令:

kubectl get secrets

或通过云厂商的网页查看:

如果使用腾讯云账号登录 CODING,在设置 CODING CD 时,会在 TKE 集群中自动创建名为 coding-registry-cred-$(user_id)的 Secret:

创建项目令牌

如果上一步检查发现没有 K8s Secret,则在 CODING「项目设置」——「开发者选项」——「项目令牌」页面创建一个具有「读取制品库」权限的令牌:

创建 K8s Secret

把上一步获得的项目令牌创建为 K8s Secret,命令:

kubectl create secret docker-registry coding-docker \
--docker-server=团队域名 --docker-username=项目令牌用户名 --docker-password=项目令牌密码

或通过云厂商的网页创建:

使用 K8s Secret

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

apiVersion: apps/v1
kind: Deployment
...
    spec:
      containers:
      - name: my-api
        image: my-team-docker.pkg.coding.net/demo/docker/my-api:1.2.3
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: coding-docker

参考资料

从私有仓库拉取镜像 - Kubernetes 官方文档

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

在阅读中是否遇到以下问题?

您希望我们如何改进?