k8s 想要拉取私有镜像配置起来并不复杂,这里简单介绍一下操作流程:
- 创建登录镜像仓库的 secret 资源
- 将 secret 添加到 ServiceAccount
使用如下命令来创建认证:
kubectl create secret docker-registry <认证名称> \
--docker-server=<镜像仓库地址> \
--docker-username=<登录名> \
--docker-password=<密码> \
--docker-email=[邮箱]
有两点需要注意,一是如果你的服务不在默认的命名空间下,那么这个认证创建命令里也要用-n
指定对应的命名空间。二是密码前后要加引号。而邮箱可以不填。示例如下:
kubectl create secret docker-registry my-registry \
--docker-server=registry.my.hub \
--docker-username=admin \
--docker-password='a12345'
执行如下命令来进行添加:
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "my-registry"}]}'
注意要保证后面的name
字段和你刚才创建的认证名称相同,并且同样要注意-n
指定命名空间的问题。