一、问题描述
在使用K8s的过程中,Pod需下载镜像,下载镜像过程中大部分场景会去自建的Harbor上下载,在Harbor上,如果项目是公开的话则仅需要输入Harbor的用户名和密码即可,但当Harbor上的项目是私有时,这种方式就不可以了,需要额外配置其它参数。
二、问题解决
1.1 先在服务器上登录 Harbor 仓库
~] docker login -u admin -p Harbor12345 $HARBOR_DOMAIN
1.2 查看登录的秘钥数据
~] cat ~/.docker/config.json
{
"auths": {
"harbor.gensee.com": {
"auth": "xxtestYWRtasafw9rbTlpam5fUEw8PVs7Lg=="
}
}
}
1.3 对上面出来的数据进行base64加密
~] cat ~/.docker/config.json |base64 -w 0
1.4 创建secret.yaml文件
apiVersion: v1
kind: Secret
metadata:
# secret的名称
name: harbor-secret
# 写创建在哪个名称空间
namespace: $NAMESPACE
type: kubernetes.io/dockerconfigjson
data:
# 值为1.3中生成的密钥
.dockerconfigjson: xxJImF1ddddwoJCSJoYXJib3IuZ2Vuc2VlLmNvbSI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZNRzlyYlRscGFtNWZVRXc4UFZzN0xnPT0iCgkJfQoJfQp9
1.5 生成对象
~] kubectl create -f harbor-secret.yaml