前提条件是,参考docker(二)添加私有仓库认真,这里假设,k8s node 节点,已经通过,harbor 的认证,这是 在/root/.docker/下生成config.json 文件
内容大概就是
{ "auths": { "harbor.studeylinux.com": { "auth": "xxxxxxxxxxxxxxxx" } }
这样的认证信息,但是不能没个node 节点都去添加这个东西,横向扩展的时候,就很麻烦了
所以,把这个信息添加到k8s 的secrets里的认证,每个节点都可以进行调用,到时候只需要维护私有仓库的用户,就可以了
这个时候编写k8s 所需的要harbor认证yaml 文件
首先把config.json 加密
cat config.json |base64 -w 0
ewogICJhdXRocyI6IHsKICAgICJodWIudGVzdGhhcmJvci5jb20iOiB7CiAgICAgICJhdXRoIjogI
得到一大串密文,-w 0 是不让换行
编写yaml 文件
apiVersion: v1 kind: Secret metadata: name: harbor.studeylinux.com.key type: kubernetes.io/dockercfg data: .dockercfg: ewoJImF1dGhzIjogewoJCSJoYXJib3Iuc3R1ZGV5bGludXguY29tIjogewoJCQkiYXV0aCI6ICJaR1YyT2tsM2FuY3hNak0wTlRZPSI
我这里没有指定namespace,正常来讲必须指定,然后指定secrets的名字,最后加上我们刚才加密后的密码
然后在k8s 中利用yaml 直接创建,也可以用命令
kubectl create harbor.yaml
到此,就可以编写pod.yaml文件来进行部署并拉取镜像了
apiVersion: v1 kind: Pod metadata: name: tomcat spec: containers: - name: tomcat image: tomcat imagePullSecrets: - name: harbor.studeylinux.com.key
这个是我自己写的简单例子,实际应用可以,自己修改
转载于:https://blog.51cto.com/wks97/1956056