• k8s:部署harbor


    准备证书和域名

    首先准备域名,我这里准备好了一个域名:harbor.wenjie98.cn

    然后可以去阿里云申请免费的ssl证书,我这里已经申请好了一个证书:

    image-20220725144024021

    点击下载,下载nginx的证书:

    image-20220725144100710

    下载好之后,zip包中有两个文件(key和pem):

    image-20220725144135727

    我这里把两个文件名字修改成harbor.wenjie98.cn.keyharbor.wenjie98.cn.pem并上传到linux服务器中。

    根据证书文件创建secret:

    kubectl create ns devops
    kubectl create secret tls harbor.wenjie98.cn --key harbor.wenjie98.cn.key --cert harbor.wenjie98.cn.pem -n devops
    

    部署

    我们使用helm部署harbor将会非常简单:

    helm repo add harbor https://helm.goharbor.io
    helm pull harbor/harbor
    tar -xvf harbor-1.9.3.tgz
    cd harbor
    ll
    

    image-20220725143840419

    创建override文件,用于重写values.yaml文件:

    这里pvc的大小和使用的sc根据自己搭建的k8s情况而定

    vi override.yaml
    
    expose:  #web浏览器访问用的证书
      type: ingress
      tls:
        certSource: "secret"
        secret:
          secretName: "harbor.wenjie98.cn"
          notarySecretName: "harbor.wenjie98.cn"
      ingress:
        hosts:
          core: harbor.wenjie98.cn
          notary: notary-harbor.wenjie98.cn
    externalURL: https://harbor.wenjie98.cn
    internalTLS:  #harbor内部组件用的证书
      enabled: true
      certSource: "auto"
    persistence:
      enabled: true
      resourcePolicy: "keep"
      persistentVolumeClaim:
        registry:  # 存镜像的
          storageClass: "rook-ceph-block"
          accessMode: ReadWriteOnce
          size: 50Gi
        chartmuseum: #存helm的chart
          storageClass: "rook-ceph-block"
          accessMode: ReadWriteOnce
          size: 5Gi
        jobservice: #
          storageClass: "rook-ceph-block"
          accessMode: ReadWriteOnce
          size: 1Gi
        database: #数据库  pgsql
          storageClass: "rook-ceph-block"
          accessMode: ReadWriteOnce
          size: 1Gi
        redis: #
          storageClass: "rook-ceph-block"
          accessMode: ReadWriteOnce
          size: 1Gi
        trivy: # 漏洞扫描
          storageClass: "rook-ceph-block"
          accessMode: ReadWriteOnce
          size: 5Gi
    metrics:
      enabled: true
    

    安装harbor:

     helm install harbor ./ -f values.yaml -f override.yaml  -n devops
    

    等待一阵后,可用如下命令确保harbor运行成功:

    watch -n 1 kubectl get pod -ndevops
    

    默认情况下,核心pod都是只有一个的

    image-20220725145123215

    如果有高可用的需要,可参考https://goharbor.io/docs/2.4.0/install-config/harbor-ha-helm/,修改replicas的数目即可。

    image-20220725145204485

    安装完成后,访问https://harbor.wenjie98.cn,能访问到:

    image-20220725145348696

    默认账号密码为:admin/Harbor12345,我这里已经修改过了。

    使用

    docker登录harbor,输入账号和密码:

    docker login harbor.wenjie98.cn
    

    image-20220725151335962

    harbor的代理缓存

    代理缓存实现了代理并缓存来自公共或私有仓库的镜像的功能

    系统管理员可以通过创建代理缓存类型的项目来配置代理缓存 (该项目使用配置的目标 registry 的 endpoint 进行连接)

    这种代理缓存类型的项目的工作方式与普通的Harbor项目类似,区别在于无法推送镜像到其中

    官方文档:https://goharbor.io/docs/2.4.0/administration/configure-proxy-cache/#create-proxy-cache-project

    先创建一个仓库:

    image-20220725151534558

    配置harbor的代理缓存:

    image-20220725152552182

    测试代理缓存:

    docker pull harbor.wenjie98.cn/proxy-cache/goharbor/harbor-core:dev
    

    image-20220725153110132

    image-20220725153121855

    测试推送、拉取镜像

    创建一个普通的项目,名称为wj

    image-20220725153216823

    测试:

    docker pull busybox
    docker tag busybox:latest harbor.wenjie98.cn/wj/busybox:latest
    docker push harbor.wenjie98.cn/wj/busybox:latest
    

    image-20220725153456710

    image-20220725153528818

    测试拉取:

    docker rmi harbor.wenjie98.cn/wj/busybox:latest
    docker rmi busybox:latest
    docker pull harbor.wenjie98.cn/wj/busybox:latest
    

    image-20220725153659008

  • 相关阅读:
    SQL Server 调优系列基础篇
    SQL Server 调优系列基础篇
    SQL Server 调优系列基础篇
    企业应用架构 客户端 / 服务器
    SQL Server 调优系列基础篇
    SQL Server 调优系列基础篇
    SQL Server 调优系列基础篇
    HL7 2.6 解析(XML)
    .Net程序调试与追踪的一些方法
    实现算法2.17的程序
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/16517650.html
Copyright © 2020-2023  润新知