使用Helm安装harbor


  1. 使用nfs共享存储搭建的pvc(此次都放在一个vpc下);
  2. harbor使用nodePort方式部署,不使用ssl;
  1. 准备工作:

    • 准备好harbor用的pvc

    • 安装好helm,添加好可用源;

    • 因为使用的nfs创建的pvc,要给足权限,要不数据库的pod创建时会报错;

      chmod -R 777 /data/nfs-harbor/
      
    • 创建好harbornamespace,以后的所有资源都创建在这个命名空间里(包括harbor用的pvc);

      kubectl create namespace harbor
      
  2. 下载harbor包:

    #添加harbor的helm仓库
    helm repo add harbor https://helm.goharbor.io
    
    #下载最新的harbor包
    helm pull harbor/harbor
    
  3. 解压tgz包,修改values.yaml文件

    #values.yaml文件很长,只需要修改一部分
    
    expose:
      type: nodePort	#修改为nodePort
      tls:
        enabled: false	#不使用ssl,修改为false
    		......
    externalURL: http://10.1.129.121:30002	#修改为其中一个node节点的IP+端口,以后harbor使用这个URL访问
    ......
    persistence:
      enabled: true
      resourcePolicy: "keep"
      persistentVolumeClaim:
        registry:
          existingClaim: "nfs-pvc-harbor"	#修改为之前创建好的pvc
          storageClass: ""
          subPath: "registry"	#修改为对应名字,以后的数据存在此目录中
          accessMode: ReadWriteOnce
          size: 5Gi
        chartmuseum:
          existingClaim: "nfs-pvc-harbor"	#修改为之前创建好的pvc
          storageClass: ""
          subPath: "chartmuseum"	#修改为对应名字,以后的数据存在此目录中
          accessMode: ReadWriteOnce
          size: 5Gi
        jobservice:
          existingClaim: "nfs-pvc-harbor"	#修改为之前创建好的pvc
          storageClass: ""
          subPath: "jobservice"	#修改为对应名字,以后的数据存在此目录中
          accessMode: ReadWriteOnce
          size: 1Gi
        database:
          existingClaim: "nfs-pvc-harbor"	#修改为之前创建好的pvc
          storageClass: ""
          subPath: "database"	#修改为对应名字,以后的数据存在此目录中
          accessMode: ReadWriteOnce
          size: 1Gi
        redis:
          existingClaim: "nfs-pvc-harbor"	#修改为之前创建好的pvc
          storageClass: ""
          subPath: "redis"	#修改为对应名字,以后的数据存在此目录中
          accessMode: ReadWriteOnce
          size: 1Gi
        trivy:
          existingClaim: "nfs-pvc-harbor"	#修改为之前创建好的pvc
          storageClass: ""
          subPath: "trivy"	#修改为对应名字,以后的数据存在此目录中
          accessMode: ReadWriteOnce
          size: 5Gi
       		......
    
  4. 安装harbor

    helm install harbor harbor/harbor -f values.yaml -n harbor
    
    #等一会查看pod创建是否成功,默认密码为admin/Harbor12345
    kubectl get pod -n harbor
    
    #使用之前配的URL即可登录harbor页面
    
  5. 配置harbor镜像仓库: /

    #修改docker添加http为信任仓库
    vim /etc/docker/daemon.json 
    
    "insecure-registries": ["10.1.129.121:30002"]
    
    #重启docker
    systemctl restart docker
    
    #配置用户名密码
    docker login 10.1.129.121:30002
    
    #测试推送
    docker push 10.1.129.121:30002/k8s.gcr.io/kube-apiserver:v1.23.1