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

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

您希望我们如何改进?