参考:https://blog.51cto.com/lvnian/2314456?source=dra
方式一
# 本地docker login后,会在/root/.docker/config.json生成文件,里面包含harbor的登录信息
# 使用该登录信息创建Secret
# base64 -w 0 /root/.docker/config.json
# 生成一串密文
apiVersion: v1
kind: Secret
metadata:
name: harbor-token
namespace: default
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSJ3YWl0ZXI6NTA1MCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZTR0Z5WW05eU1USXpORFU9IgoJCX0KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy4yIChsaW51eCkiCgl9Cn0=
type: kubernetes.io/dockerconfigjson
方式二
kubectl create secret docker-registry harbor-token --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
harbor-token: 指定密钥的键名称, 可自行定义
--docker-server: 指定docker仓库地址
--docker-username: 指定docker仓库账号
--docker-password: 指定docker仓库密码
--docker-email: 指定邮件地址
-n : 命名空间,在那个命名空间创建,就只能在那个命名空间使用这个secret
在k8s的yml文件中,imagePullSecrets用于使用指定的secret拉取镜像
spec:
containers:
- name: test
image: your-registry/library/your-image
ports:
- name: http
containerPort: 8887
imagePullSecrets:
- name: harbor-token
imagePullSecrets:
- name: harbor-token