k8s 想要拉取私有镜像配置起来并不复杂,这里简单介绍一下操作流程:

  • 创建登录镜像仓库的 secret 资源
  • 将 secret 添加到 ServiceAccount
创建 Secret

使用如下命令来创建认证:

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'
将 secret 添加到 ServiceAccount

执行如下命令来进行添加:

kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "my-registry"}]}'

注意要保证后面的name字段和你刚才创建的认证名称相同,并且同样要注意-n指定命名空间的问题。

参考