假设已经搭建了私有的镜像仓库,域名是habor.xxx.com
1、docker登录镜像仓库
docker login -u xxx -p xxx habor.xxx.com
2、拿到base64编码配置文件
docker登录之后,会把密钥存到一个配置文件中
cat ~/.docker/config.json | base64
3、用base64编码写一个secret配置文件
demo-key.yaml
apiVersion: v1 kind: Secret metadata: name: demo-key namespace: default type: kubernetes.io/dockerconfigjson data: .dockerconfigjson:xxxxxxxxxxxxx
其中xxxxx为第二步生成的base64编码。
注意命名空间。
4、导入k8s
kubectl create -f demo-key.yaml
5、修改chart
修改values.yaml
找到repository字段,两种情况:
同级别字段没有registry字段的:改为 域名/目录/镜像名这种,例如docker.io/bitnami/etcd 改为 habor.xxx.com/myproject/etcd
同级别字段有registry字段的:registry和repository分别替换,registry里放域名,repository放目录和镜像名。另外在image下(一般是与repository同级别),添加字段。
例如:
registry: harbor.xxx.com repository: myproject/etcd
pullSecrets:
- demo-key
注意 不需要带https前缀。
chart里有依赖chart的,递归进去修改。