在k8s中使用harbor仓库
在k8s中使用harbor仓库
修改每个node上的docker认证仓库
将每个node节点上的docker同样需要配置可信任仓库
vi /etc/docker/daemon.json #修改为 {"registry-mirrors": ["http://a58c8480.m.daocloud.io"], "insecure-registries": ["10.1.210.33"]} #重启docker systemctl restart docker
创建认证secret
由于harbor采用了用户名密码认证,所以在镜像下载时需要配置sercet
#创建 kubectl create secret docker-registry registry-secret --namespace=default \ --docker-server=10.1.210.33 \ --docker-username=admin \ --docker-password=Harbor12345 #查看secret [root@master demo]# kubectl get secret NAME TYPE DATA AGE default-token-gdwgn kubernetes.io/service-account-token 3 2d18h registry-secret kubernetes.io/dockerconfigjson 1 116s #删除 kubectl delete secret registry-secret
部署示例
以一个部署一个nginx为例子,其中需要把containers中的images镜像指定为harbor仓库镜像地址,并且使用创建的的secret。
# kubectl create -f nginx.yml
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: appname: nginx spec: replicas: 3 selector: matchLabels: appname: nginx template: metadata: labels: appname: nginx spec: containers: - name: nginx image: 10.1.210.33/project1/nginx:latest #镜像地址 ports: - containerPort: 80 imagePullSecrets: #使用的secret - name: registry-secret
查看pod
查看pod镜像拉去日志,可发现使用的是harbor仓库。
ref:
https://www.cnblogs.com/wdliu/p/10250385.html
https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
https://blog.csdn.net/u010278923/article/details/77941995
https://kubernetes.io/docs/concepts/containers/images/