当前位置:首页 > CloudNative云原生 > 正文内容

K8s/K3s集群 通过Helm Chart部署Harbor仓库: 镜像管理简单靠谱

时移世界11个月前 (04-29)CloudNative云原生861

Harbor主流部署方式:
1、安装docker、docker-compose,下载offline install包进行安装;
2、通过Helm Chart部署Harbor到k3s或k8s集群;--- <注:纯云原生,偏好选这种^^>

Harbor 简介

Harbor是由VMware公司开源的一个企业级Docker Registry项目。它扩展了Docker Distribution的功能,增加了安全、标识和管理等特性,以满足企业用户的需求。Harbor提供基于角色的访问控制、镜像资源复制、高级安全特性等功能,方便用户迅速搭建和管理企业级的Docker镜像仓库。它支持多个节点间的镜像复制,确保数据在公司内部网络中安全管控,并提供了图形化用户界面,方便用户操作和管理。

架构及组件

640 (2).webp

Harbor的主要组件包括:

Proxy(代理):这是一个Nginx前端代理,主要负责分发前端页面UI的访问流量以及镜像的上传和下载流量。它在图中通过深蓝色线标志,起到了流量管理和负载均衡的作用。
UI(用户界面):UI组件为用户提供了一个web管理页面,包括前端页面和后端API,使得用户可以方便地对Harbor进行管理。底层则使用MySQL数据库来存储用户数据。
Registry(镜像仓库):Registry是Harbor的核心组件,负责存储Docker镜像文件。当镜像上传完成后,它会通过hook机制通知UI组件创建repository。同时,Registry的token认证也是通过UI组件来完成的。在图中,与Registry相关的交互通过红色线标志。
AdminServer(配置管理中心):AdminServer是Harbor的配置管理中心,除了管理配置外,还负责检查存储用量。UI和JobService在启动时都需要加载AdminServer的配置。在图中,与AdminServer相关的交互通过灰色线标志。
JobService(作业服务):JobService负责镜像复制工作。它会与Registry通信,从一个Registry拉取镜像,然后推送到另一个Registry,并记录job_log。在图中,与JobService相关的交互通过紫色线标志。
Log(日志组件):Log组件通过Docker的log-driver来汇总和管理Harbor各组件的日志,使得用户可以方便地查看和分析系统的运行情况。在图中,与Log组件相关的交互通过蓝色线标志。
这些组件协同工作,使得Harbor能够为企业用户提供稳定、安全、高效的Docker镜像管理服务。

环境准备:
基础环境: K3s
软件依赖: Helm3 & Git
存储依赖: NFS

一、helm配置:
helm repo add harbor https://helm.goharbor.io
helm repo update
helm pull harbor/harbor
tar xf harbor-x.x.x.tgz

a1.png

二、配置 PV & PVC:
云原生之存储百态,NFS与Ceph等皆为良选。本文特选NFS存储类,以探索服务访问之新境。

1、配置NFSRHCE基础能力,不再赘述。
2、pvc,pv的yaml文件,自定义写好即可。
     


     $kubectl apply -f harbor-pvc.yaml    # 创建 pvc
     $kubectl apply -f harbor-pv.yaml      # 创建 pv 
    
     
 

     $ kubectl get pvc/pv -A | grep harbor   # 查看 pvc/pv
     a4.png   

三、配置 values.yaml & 安装harbor
    1、values.yaml文件,自定义写好即可。
              # 主要自定义修改如下:
              a、certSource: auto ---> 要改!
              b、core: core.harbor.domain---> 要改!
              c、externalURL: https://core.harbor.domain---> 要改!
              d、storageClass /jobservice / database / redis / trivy ---> 要改!
              e、 harborAdminPassword: "Harbor12345"---> 要改!

       2、harbor安装:
            $ helm install harbor harbor/harbor --namespace harbor --values harbor/values.yaml   # 安装
            $ kubectl get deployments,pods,services,ingress -n harbor  # 查看
            $helm upgrade harbor harbor/harbor --install --namespace harbor --values values.yaml  # 更新
            $helm delete harbor --namespace harbor  # 删除

       2、Ingress 配置:
           ⚠️注:部署Harbor后,需权衡Ingress-nginx与Traefik之服务访问控制。鉴于我之K3s集群采用Traefik为负载均衡器,故配置应随之调整。
      $ kubectl get ingress -n harbor harbor-ingress -oyaml > harbor-core-ingress.yaml
          $ kubectl get ingress -n harborharbor-ingress-notary -oyaml > harbor-notary-ingress.yaml
            # 编辑 ingress 的负载映射, 然后发布……(略)
  
            ⚠️注:部署Harbor后,关键在于选择Ingress控制器。对于K3s集群中的Traefik负载均衡器,配置时应注重删除冗余信息,确保控制器字段准确无冲突。
           $ kubectl apply -f harbor-core-ingress.yaml
            
kubectl apply -f harbor-notary-ingress.yaml

四、harbor使用: 
      1、绑定hosts访问:
       a5.webp

      2、镜像管理:
     a6.png

总结:

探索之路无尽头,详细用法尚待深挖;且行且思,不断总结,以悟云原生之真谛。

扫描二维码推送至手机访问。

版权声明:本文由时移安全运维发布,如需转载请注明出处。

本文链接:https://security.youchang.net/?id=4

分享给朋友:

“K8s/K3s集群 通过Helm Chart部署Harbor仓库: 镜像管理简单靠谱” 的相关文章

K8s/K3s云原生:实战Prometheus监控与Grafana可视化

K8s/K3s云原生:实战Prometheus监控与Grafana可视化

一、概述Prometheus,起源于SoundCloud的匠心之作,作为开源监控告警系统的璀璨明星,实则承载着Google BorgMon监控智慧的传承。2016年,它荣耀加冕,成为继k3s之后,第二个受到CNCF庇护的杰出项目。随着k3s在轻量级容器编排领域的王者地位日益稳固,Prometheus...

实战K3s 集群内置Traefik(反向代理& Ingress Controller)

实战K3s 集群内置Traefik(反向代理& Ingress Controller)

Traefik:轻量级且强大的现代HTTP反向代理与负载均衡器在当下这个云计算和微服务盛行的时代,一个高效且易用的HTTP反向代理与负载均衡器成为了每一个技术团队不可或缺的工具。今天,我们就来聊聊这样一个备受瞩目的开源项目——Traefik。一、Traefik是什么?Traefik是一个用Go语言编...

K3s探秘:Install and Configure OpenSearch

K3s探秘:Install and Configure OpenSearch

叮咚~ 周末如期而至,新岗位每周实战笔记亦如约而现,笔耕不辍,记录点滴。背景知识:OpenSearch最初是由Amazon公司开源的。它最初是作为Amazon Elasticsearch Service的一个分支存在,旨在提供与Elasticsearch兼容但又有独特优势的开源搜索和分析解决方案。后...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。