部署 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=项目令牌密码
你可以在 CODING 制品仓库中的配置凭据中找到仓库域名。
或通过云厂商的网页创建:
使用 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
参考资料
问题反馈 >
2023-10-12最近更新
感谢反馈有用
感谢反馈没用
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。