参考文档:https://kubernetes.io/zh/docs/tasks/configure-pod-container/pull-image-private-registry/
一、生成secret
$ docker login lvzhenjiang.harbor.com
Login Succeeded
登录过程创建或更新一个包含授权令牌的config.json文件。
查看config.json文件:
{
"auths": {
"lvzhenjiang.harbor.com": {
"auth": "YWRtaW46SGFyYm9yMTIzNDU="
}
}
基于现有Docker凭据创建secret
kubernetes集群使用docker注册表类型的秘密对容器注册表进行身份验证,以获取私有映像。
如果您已经运行了Docker登录,则可以将该凭证复制到Kubernetes中:
$ kubectl create secret generic harborsecret
--from-file=.dockerconfigjson=/root/.docker/config.json
--type=kubernetes.io/dockerconfigjson
注意,主要修改的内容:
- harborsecret: 表示key名
- /root/.docker/config.json 表示docker认证文件,注意要写绝对路径。
查看内容:
$ kubectl get secrets harborsecret --output="jsonpath={.data..dockerconfigjson}" | base64 -d
{
"auths": {
"lvzhenjiang.harbor.com": {
"auth": "YWRtaW46SGFyYm9yMTIzNDU="
}
}
}
要了解刚刚创建的regcred秘密的内容,请从以yaml格式进行查看:
$ kubectl get secrets harborsecret -oyaml
二、在deployment yaml文件使用
...
spec:
imagePullSecrets:
- name:harborsecret
containers:
- name: eureka
image: lvzhenjiang.harbor.com/library/alpine:latest
...