在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/

原文地址:https://www.cnblogs.com/hushaojie/p/13784546.html