前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TKE上搭建企业级镜像仓库Harbor

TKE上搭建企业级镜像仓库Harbor

原创
作者头像
聂伟星
修改于 2021-04-14 05:08:25
修改于 2021-04-14 05:08:25
1.7K0
举报

本次我们来讲解下如何在TKE上搭建企业级镜像仓库Harbor,这里我们采用的是helm方式部署到TKE集群上,helm部署的harbor会通过ingress暴露前端页面提供访问,一般我们需要通过域名的https方式来访问Harbor仓库,所以我们需要做如下准备:

  • 腾讯云上申请一个TKE集群
  • 安装helm
  • 集群上安装nginx-ingress这个插件,可以参考https://cloud.tencent.com/document/product/457/50503
  • 腾讯云上申请一个域名,在dnspod将域名解析到nginx-ingress的入口lb上,我这里将*.tke.niewx.cn解析到我的nginx-ingress入口lb上
  • 腾讯云上申请免费的ssl证书,解析到你的harbor域名,我这里的域名是harbor.tke.niewx.cn

如上都准备好,我们就开始进行部署harbor到TKE集群中,本次搭建仅作为示例,不做实际的使用。

helm下载harbor的chart包

因为我们需要修改chart包中一些参数,我们需要先下载chart包,然后修改value.yaml中的参数

代码语言:txt
AI代码解释
复制
# helm repo add harbor https://helm.goharbor.io
# helm fetch harbor/harbor 1.5.2
# tar -zxvf harbor-1.5.2.tgz

修改value.yaml

这里我们只指出value.yanl需要修改的地方,大家可以根据的注释说明进行修改,这里ingress我用的nginx-ingress插件,和原生的控制器有点差别,这里我们会先不修改,后续会删除helm创建的ingress,重新配置ingress。

代码语言:txt
AI代码解释
复制
expose:
  type: ingress
  tls:
    enabled: false  #如果没有证书,则设置为false
    certSource: auto
    auto:
      commonName: ""
    secret:
      secretName: ""
      notarySecretName: ""
  ingress:
    hosts:
      core: core.harbor.domain
      notary: notary.harbor.domain
    controller: default
    annotations:
      ingress.kubernetes.io/ssl-redirect: "true"
      ingress.kubernetes.io/proxy-body-size: "0"
      nginx.ingress.kubernetes.io/ssl-redirect: "true"
      nginx.ingress.kubernetes.io/proxy-body-size: "0"
  clusterIP:
    name: harbor
    ports:
      httpPort: 80
      httpsPort: 443
      notaryPort: 4443
  nodePort:
    name: harbor
    ports:
      http:
        port: 80
        nodePort: 30002
      https:
        port: 443
        nodePort: 30003
      notary:
        port: 4443
        nodePort: 30004
  loadBalancer:
    name: harbor
    IP: ""
    ports:
      httpPort: 80
      httpsPort: 443
      notaryPort: 4443
    annotations: {}
    sourceRanges: []

# If Harbor is deployed behind the proxy, set it as the URL of proxy
externalURL: https://harbor.tke.niewx.cn  # 配置上需要给harbor访问的域名

......

persistence:
  enabled: true
  # Setting it to "keep" to avoid removing PVCs during a helm delete
  # operation. Leaving it empty will delete PVCs after the chart deleted
  # (this does not apply for PVCs that are created for internal database
  # and redis components, i.e. they are never deleted automatically)
  resourcePolicy: "keep"
  persistentVolumeClaim:
    registry:
      # Use the existing PVC which must be created manually before bound,
      # and specify the "subPath" if the PVC is shared with other components
      existingClaim: ""
      # Specify the "storageClass" used to provision the volume. Or the default
      # StorageClass will be used(the default).
      # Set it to "-" to disable dynamic provisioning
      storageClass: ""
      subPath: ""
      accessMode: ReadWriteOnce
      size: 10Gi # 根据需要修改磁盘大小,腾讯云上cbs盘最小要求10G
    chartmuseum:
      existingClaim: ""
      storageClass: ""
      subPath: ""
      accessMode: ReadWriteOnce
      size: 10Gi  # 根据需要修改磁盘大小,腾讯云上cbs盘最小要求10G
    jobservice:
      existingClaim: ""
      storageClass: ""
      subPath: ""
      accessMode: ReadWriteOnce
      size: 10Gi  # 根据需要修改磁盘大小,腾讯云上cbs盘最小要求10G
    # If external database is used, the following settings for database will
    # be ignored
    database:
      existingClaim: ""
      storageClass: ""
      subPath: ""
      accessMode: ReadWriteOnce
      size: 10Gi  # 根据需要修改磁盘大小,腾讯云上cbs盘最小要求10G
    # If external Redis is used, the following settings for Redis will
    # be ignored
    redis:
      existingClaim: ""
      storageClass: ""
      subPath: ""
      accessMode: ReadWriteOnce
      size: 10Gi  # 根据需要修改磁盘大小,腾讯云上cbs盘最小要求10G
    trivy:
      existingClaim: ""
      storageClass: ""
      subPath: ""
      accessMode: ReadWriteOnce
      size: 10Gi  # 根据需要修改磁盘大小,腾讯云上cbs盘最小要求10G
  
..........

创建harbor服务

这里我们创建一个harbor的命名空间用来部署harbor

代码语言:txt
AI代码解释
复制
# kubectl create ns harbor
# helm install ./harbor --generate-name --namespace harbor

[root@VM-0-13-centos harbor]# kubectl get pod -n harbor
NAME                                                      READY   STATUS    RESTARTS   AGE
harbor-1610108910-harbor-chartmuseum-5874b9c6f-drk8f      1/1     Running   0          16h
harbor-1610108910-harbor-clair-cb9fb7cd-t58l8             2/2     Running   3          16h
harbor-1610108910-harbor-core-69d8dd696b-wzdp8            1/1     Running   0          16h
harbor-1610108910-harbor-database-0                       1/1     Running   0          16h
harbor-1610108910-harbor-jobservice-754bfbfd65-qk9ps      1/1     Running   0          16h
harbor-1610108910-harbor-notary-server-7f4ccfd65c-kbc62   1/1     Running   1          16h
harbor-1610108910-harbor-notary-signer-676f5dfbb7-p8r6q   1/1     Running   1          16h
harbor-1610108910-harbor-portal-59b9d4f876-p44bm          1/1     Running   0          16h
harbor-1610108910-harbor-redis-0                          1/1     Running   0          16h
harbor-1610108910-harbor-registry-7c445d6cd8-qfvkc        2/2     Running   0          16h
harbor-1610108910-harbor-trivy-0                          1/1     Running   0          16h

通过nginx-ingress配置harbor访问域名

这边等pod启动后,我们通过nginx-ingress来配置下harbor的域名,因为harbor需要提供https服务,我们需要在ingress配置tls,因此需要先将我们之前申请的证书通过secret进行挂载。

代码语言:txt
AI代码解释
复制
# kubectl create secret tls harbor-ssl --key 2_harbor.tke.niewx.cn.key --cert 1_harbor.tke.niewx.cn_bundle.crt -n harbor

配置ingress转发harbor-portal的前端页面访问service

代码语言:txt
AI代码解释
复制
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.cloud.tencent.com/direct-access: "false"
    kubernetes.io/ingress.class: nwx-ingress
    kubernetes.io/ingress.extensiveParameters: '{"AddressIPVersion":"IPV4"}'
    kubernetes.io/ingress.http-rules: '[{"host":"harbor.tke.niewx.cn","path":"/","backend":{"serviceName":"harbor-1610088954-harbor-portal","servicePort":"80"}}]'
    kubernetes.io/ingress.https-rules: "null"
    kubernetes.io/ingress.rule-mix: "false"
    nginx.ingress.kubernetes.io/proxy-body-size: 1000m
    nginx.ingress.kubernetes.io/use-regex: "true"
  name: harbor-ingress
  namespace: harbor
spec:
  rules:
  - host: harbor.tke.niewx.cn
    http:
      paths:
      - backend:
          serviceName: harbor-1610108910-harbor-portal
          servicePort: 80
        path: /
      - backend:
          serviceName: harbor-1610108910-harbor-core
          servicePort: 80
        path: /api
      - backend:
          serviceName: harbor-1610108910-harbor-core
          servicePort: 80
        path: /service
      - backend:
          serviceName: harbor-1610108910-harbor-core
          servicePort: 80
        path: /v2
      - backend:
          serviceName: harbor-1610108910-harbor-core
          servicePort: 80
        path: /chartrepo
      - backend:
          serviceName: harbor-1610108910-harbor-core
          servicePort: 80
        path: /c
  tls:
  - hosts:
    - harbor.tke.niewx.cn
    secretName: harbor-ssl
status:
  loadBalancer:
    ingress:
    - ip: 81.71.131.235

配置好之后,可以将helm创建的ingresss删除掉,然后直接浏览器输入 https://harbor.tke.niewx.cn 进行访问,默认初始账号密码是 admin/Harbor12345,建议后续修改admin的密码,输入后正常登录即说明部署成功。

1.png
1.png
2.png
2.png

往harbor上传下载镜像

我们在harbor上创建了一个tke的项目,用来测试上传下载镜像

上传镜像

代码语言:txt
AI代码解释
复制
[root@VM-0-13-centos harbor]# docker login harbor.tke.niewx.cn
Authenticating with existing credentials...
Stored credentials invalid or expired
Username (admin): admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@VM-0-13-centos harbor]# docker tag nginx:latest harbor.tke.niewx.cn/tke/nginx:latest
[root@VM-0-13-centos harbor]# docker push harbor.tke.niewx.cn/tke/nginx:latest
The push refers to repository [harbor.tke.niewx.cn/tke/nginx]
4eaf0ea085df: Layer already exists 
2c7498eef94a: Layer already exists 
7d2b207c2679: Layer already exists 
5c4e5adc71a8: Layer already exists 
87c8a1d8f54f: Layer already exists 
latest: digest: sha256:13e4551010728646aa7e1b1ac5313e04cf75d051fa441396832fcd6d600b5e71 size: 1362
3.png
3.png

注意: 这里我们在上传镜像的时候遇到了一个问题,一般镜像文件比较大,推送可能会报错413 Request Entity Too Large,原来是上传文件太大,导致上传失败,这里我们在ingress修改下上传body大小就可以了,在ingress注解中加入就可以正常推送了 nginx.ingress.kubernetes.io/proxy-body-size: 1000m

下载镜像

我们在其他机器上拉取镜像试试

代码语言:txt
AI代码解释
复制
[root@VM-0-3-centos ~]# docker pull harbor.tke.niewx.cn/tke/nginx:latest
latest: Pulling from tke/nginx
Digest: sha256:13e4551010728646aa7e1b1ac5313e04cf75d051fa441396832fcd6d600b5e71
Status: Downloaded newer image for harbor.tke.niewx.cn/tke/nginx:latest

因为我们的镜像仓库是公开的,不需要登录也可以拉取,这里我们配置成私有的,需要先登录才能拉取镜像

4.png
4.png
代码语言:txt
AI代码解释
复制
[root@VM-0-3-centos ~]# docker pull harbor.tke.niewx.cn/tke/nginx:latest
Error response from daemon: unauthorized: unauthorized to access repository: tke/nginx, action: pull: unauthorized to access repository: tke/nginx, action: pull
[root@VM-0-3-centos ~]# docker login harbor.tke.niewx.cn -u admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@VM-0-3-centos ~]# docker pull harbor.tke.niewx.cn/tke/nginx:latest
latest: Pulling from tke/nginx
Digest: sha256:13e4551010728646aa7e1b1ac5313e04cf75d051fa441396832fcd6d600b5e71
Status: Downloaded newer image for harbor.tke.niewx.cn/tke/nginx:latest

这里我们将镜像仓库改成私有的就需要登录才能拉取镜像。

创建子用户访问镜像仓库

我们创建一个tke的子账号,但是没有加入到项目中,我们看看能否拉取镜像

5.png
5.png
6.png
6.png
代码语言:txt
AI代码解释
复制
[root@VM-0-3-centos ~]# docker pull harbor.tke.niewx.cn/tke/nginx:latest
latest: Pulling from tke/nginx
Digest: sha256:13e4551010728646aa7e1b1ac5313e04cf75d051fa441396832fcd6d600b5e71
Status: Downloaded newer image for harbor.tke.niewx.cn/tke/nginx:latest
[root@VM-0-3-centos ~]# docker login harbor.tke.niewx.cn -u tke
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@VM-0-3-centos ~]# docker pull harbor.tke.niewx.cn/tke/nginx:latest
Error response from daemon: unauthorized: unauthorized to access repository: tke/nginx, action: pull: unauthorized to access repository: tke/nginx, action: pull

从测试结果看是无法拉取镜像的,我们将tke用户加入到tke这个项目中再测试下,这里我们可以给tke分配不同的角色来分配不同的权限

7.png
7.png
  • 受限访客:受限访客对项目没有完全的读取权限。他们可以拉镜像,但不能推送,并且看不到日志或项目的其他成员。例如,可以为共享项目访问权限的不同组织的用户创建有限的来宾。
  • 访客:访客具有指定项目的只读权限。他们可以提取和重新标记镜像,但不能推送。
  • 开发者:开发者具有项目的读写权限。
  • 维护人员: 维护人员的权限超出了"开发者"的权限,包括扫描镜像、查看复制作业以及删除镜像和掌舵图表的能力。
  • 项目管理员:在创建新项目时,您将被分配到项目中的"项目管理人"角色。除了读写权限外,"ProjectAdmin"还具有一些管理权限,例如添加和删除成员、启动漏洞扫描

除了上述角色之外,还有两个系统级角色:

  • harbor系统管理员:"港口系统管理员"拥有最多的权限。除了上述权限外,"Harbor 系统管理员"还可以列出所有项目、将普通用户设置为管理员、删除用户以及设置所有镜像的漏洞扫描策略。公共项目"库"也归管理员所有。
  • 匿名:当用户未登录时,该用户将被视为"匿名"用户。匿名用户无法访问私有项目,并且对公共项目具有只读访问权限。

分配访客权限给tke账号

8.png
8.png
代码语言:txt
AI代码解释
复制
[root@VM-0-3-centos ~]# docker pull harbor.tke.niewx.cn/tke/nginx:latest
latest: Pulling from tke/nginx
Digest: sha256:13e4551010728646aa7e1b1ac5313e04cf75d051fa441396832fcd6d600b5e71
Status: Image is up to date for harbor.tke.niewx.cn/tke/nginx:latest
[root@VM-0-3-centos ~]# docker push harbor.tke.niewx.cn/tke/nginx:latest
The push refers to repository [harbor.tke.niewx.cn/tke/nginx]
4eaf0ea085df: Layer already exists 
2c7498eef94a: Layer already exists 
7d2b207c2679: Layer already exists 
5c4e5adc71a8: Layer already exists 
87c8a1d8f54f: Layer already exists 
unauthorized: unauthorized to access repository: tke/nginx, action: push: unauthorized to access repository: tke/nginx, action: push

可以发现,我们分配了访客权限给tke,我们只能拉取镜像,不能push镜像

分配开发者权限给tke账号

9.png
9.png
代码语言:txt
AI代码解释
复制
[root@VM-0-3-centos ~]# docker pull harbor.tke.niewx.cn/tke/nginx:latest
latest: Pulling from tke/nginx
Digest: sha256:13e4551010728646aa7e1b1ac5313e04cf75d051fa441396832fcd6d600b5e71
Status: Image is up to date for harbor.tke.niewx.cn/tke/nginx:latest
[root@VM-0-3-centos ~]# docker push harbor.tke.niewx.cn/tke/nginx:latest
The push refers to repository [harbor.tke.niewx.cn/tke/nginx]
4eaf0ea085df: Layer already exists 
2c7498eef94a: Layer already exists 
7d2b207c2679: Layer already exists 
5c4e5adc71a8: Layer already exists 
87c8a1d8f54f: Layer already exists 
latest: digest: sha256:13e4551010728646aa7e1b1ac5313e04cf75d051fa441396832fcd6d600b5e71 size: 1362

分配了开发者后就可以推送镜像了,因为开发者有读写项目的权限,其他角色大家可以进行测试实践下,我们可以灵活的通过角色控制子用户的权限。

Harbor镜像同步到TCR

我们测试下如何将harbor的镜像仓库同步到腾讯云上的TCR上,首先我们在Harobor上添加我们的TCR实例

10.png
10.png

然后创建复制规则

11.png
11.png
12.png
12.png

配置好之后点击运行发现复制失败

13.png
13.png

规则中我们没有填写命名空间,复制不会自动创建TCR的命名空间,所以需要先在tcr上创建一个tke的命名空间,创建后再执行复制操作即可

14.png
14.png

这里我们发现复制成功了,我们去tcr控制台查看镜像也是存在的

15.png
15.png
16.png
16.png

参考文档

https://github.com/goharbor/harbor-helm

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在TKE集群搭建harbor仓库
本次带来的分享是在TKE集群上搭建harbor私有仓库,另外推荐腾讯云的容器镜像服务TCR
马凌鑫
2020/02/25
1.7K2
在TKE集群搭建harbor仓库
在 Kubernetes 中部署高可用 Harbor 镜像仓库
Harbor 是一个开放源代码容器镜像注册表,可通过基于角色权限的访问控制来管理镜像,还能扫描镜像中的漏洞并将映像签名为受信任。Harbor 是 CNCF 孵化项目,可提供合规性,性能和互操作性,以帮助跨 Kubernetes 和 Docker 等云原生计算平台持续,安全地管理镜像。
米开朗基杨
2021/01/12
2.3K1
TKE集群中nginx-ingress使用实践
现在k8s上服务暴露方式用的最多就是nginx-ingress,今天我们来讲讲nginx-ingress的具体使用,我们在tke上实践下,如何部署使用nginx-ingress,以及nginx的一些注解功能的使用。
聂伟星
2020/12/31
4.2K3
Harbor边缘部署文档
若使用http提供服务,则需要修改Docker配置文件并重启,故使用https提供服务,故需配置tls
用户9350068
2022/03/06
1.5K0
kubernetes1.13.1集群集成harbor-helm
https://github.com/goharbor/harbor-helm https://www.hi-linux.com/posts/14136.html https://github.com/kubernetes-incubator/external-storage/tree/master/ceph/rbd https://github.com/kubernetes-incubator/external-storage/tree/master/ceph/rbd/deploy/rbac https://github.com/helm/helm/issues/3130 https://www.kancloud.cn/huyipow/kubernetes/531999 https://www.hi-linux.com/posts/14136.html https://li-sen.github.io/2018/10/08/k8s%E9%83%A8%E7%BD%B2%E9%AB%98%E5%8F%AF%E7%94%A8harbor/
三杯水Plus
2019/03/14
1.6K0
kubernetes1.13.1集群集成harbor-helm
harbor搭建企业docker私有镜像仓库
# curl -fsSL https://get.docker.com/ | sh
聂伟星
2020/07/12
2.6K0
Helm安装harbor2.4版本(集成helm chart包管理)
4、去官网下载对应安装版本的helm包的value.yaml文件,这里以helm包V1.8.0版本为例(对应app版本为V2.4.0)
dufu
2024/08/01
2790
Harbor 结合 Traefik 的 HA 安装配置
Harbor 是一个 CNCF 基金会托管的开源的可信的云原生 docker registry 项目,可以用于存储、签名、扫描镜像内容,Harbor 通过添加一些常用的功能如安全性、身份权限管理等来扩展 docker registry 项目,此外还支持在 registry 之间复制镜像,还提供更加高级的安全功能,如用户管理、访问控制和活动审计等,在新版本中还添加了 Helm 仓库托管的支持。
我是阳明
2021/06/25
1.3K0
Harbor 结合 Traefik 的 HA 安装配置
​Kubernetes 集群仓库 harbor Helm3 部署
Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。
高楼Zee
2020/11/30
8.4K1
​Kubernetes 集群仓库 harbor Helm3 部署
Harbor-hlem镜像库重新部署后PV数据恢复
解决方案 之前Harbor-helm部署镜像库文档可以回顾链接https://minminmsn.com/middleware/698/ 1.首先新建新证书的secret
三杯水Plus
2020/07/16
1.3K0
Harbor-hlem镜像库重新部署后PV数据恢复
云原生(三十六) | Kubernetes篇之Harbor入门和安装
作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
Lansonli
2022/07/26
1.4K0
云原生(三十六) | Kubernetes篇之Harbor入门和安装
搭建一个高可用的镜像仓库,这是我见过最详细、最简单的教程
大家好,我是小碗汤,今天分享一篇搭建一个高可用镜像仓库的教程。详细中夹杂着简单~。篇幅较长,兄弟们不妨耐心看完~
我的小碗汤
2022/01/14
1.7K0
搭建一个高可用的镜像仓库,这是我见过最详细、最简单的教程
TKE上搭建集群Dashboard
如果需要将TKE的信息展示给多个部门的人查看,但是又不想让他们通过控制台查看,这边可以搭建一个dashborad用来展示。
聂伟星
2020/07/30
1.1K0
如何将TKE/EKS集群事件日志持久化
腾讯云上的tke集群和eks集群的事件日志默认只会保留一个小时,有的时候,服务出现了问题,需要根据历史事件日志来进行排查下,因为历史事件日志只有1个小时,这样给我们排查带来了极大不便。腾讯云上默认是支持将集群的事件日志采集到cls,但是cls是需要收费的,而且很多人习惯用Elasticsearch来查询日志。 下面我们通过开源的eventrouter来将日志采集到Elasticsearch,然后通过kibana来查询事件日志。 eventrouter介绍说明:https://github.com/heptiolabs/eventrouter
聂伟星
2022/04/30
1.3K9
helm安装Harbor
在 Kubernetes 中使用 Helm 安装 Harbor 可以简化部署过程。以下是详细的安装步骤:
哇喔哇哦
2024/11/13
2490
Harbor开源镜像仓库企业级实践(1/3)
Harbor[1]是由VMware公司中国团队为企业用户设计的Registry server开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。Harbor是CNCF毕业的项目,可提供合规性,性能和互操作性,以帮助您跨Kubernetes和Docker等云原生计算平台持续,安全地管理工件。
公众号: 云原生生态圈
2020/07/14
1.1K0
java应用程序镜像制作及在kubernetes上发布
应用程序镜像制作 准备好应用程序 [root@VM_8_24_centos testapp]# ls Dockerfile testapp.tar.gz 编写Dockerfile [root@VM_8_24_centos testapp]# cat Dockerfile # 基础镜像 FROM core-harbor.minminmsn.com/public/jre-centos:1.8.0_212 # 维护信息 MAINTAINER minyt <minyongtao@minminmsn.com>
三杯水Plus
2019/05/29
7710
Harbor镜像仓库远程同步
Harbor镜像仓库远程同步
Java架构师必看
2021/06/09
1.8K0
Harbor镜像仓库远程同步
Harbor之企业级私有镜像存储仓库入门实践
Harbor 组成 描述: 用于部 署Harbor 的 Docker Compose模板位于 /Deployer/docker-compose.yml,由5个容器组成,这几个容器通过Docker link的形式连接在一起,在容器之间通过容器名字互相访问。
全栈工程师修炼指南
2022/09/29
2.8K0
Harbor之企业级私有镜像存储仓库入门实践
【腾讯云容器服务】在 TKE 上自建 harbor 镜像仓库
腾讯云有 容器镜像服务 TCR,企业级容器镜像仓库,满足绝大多数镜像仓库的需求,如果需要使用镜像仓库,可以首选 TCR,如果是考虑到成本,或想使用 Harbor 最新功能等因素,可以考虑自建 Harbor 镜像仓库,本文介绍如何在腾讯云容器服务中部署 Harbor 作为自建的容器镜像仓库。
imroc
2022/07/18
3.5K0
【腾讯云容器服务】在 TKE 上自建 harbor 镜像仓库
相关推荐
在TKE集群搭建harbor仓库
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档