使用helm在k8s集群里安装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
      
  1. 下载harbor包:

    #添加harbor的helm仓库
    helm repo add harbor https://helm.goharbor.io
    
    #下载最新的harbor包
    helm pull harbor/harbor
    
  1. 解压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
             ......
    
  1. 安装harbor

    helm install harbor harbor/harbor -f values.yaml -n harbor
    
    #等一会查看pod创建是否成功,默认密码为admin/Harbor12345
    kubectl get pod -n harbor
    
    #使用之前配的URL即可登录harbor页面
    
  1. 配置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
    

你可能感兴趣的:(使用helm在k8s集群里安装harbor)