Harbor 是一个开源仓库,通过各种策略和基于角色的访问控制来保护制品,确保镜像经过扫描且没有漏洞,并对镜像签名使其受信。

本教程演示如何从 KubeSphere 应用商店部署 Harbor。

准备工作

  • 请确保已启用 OpenPitrix 系统。
  • 您需要创建一个企业空间、一个项目和一个用户帐户 (project-regular) 供本教程操作使用。该帐户需要是平台普通用户,并邀请至项目中赋予 operator 角色作为项目操作员。本教程中,请以 project-regular 身份登录控制台,在企业空间 demo-workspace 中的 demo-project 项目中进行操作。有关更多信息,请参见创建企业空间、项目、帐户和角色。

动手实验

步骤 1:从应用商店中部署 Harbor

  1. demo-project 项目的概览页面,点击左上角的应用商店

  2. 找到 Harbor,点击应用信息页面上的部署

  3. 设置名称并选择应用版本。请确保将 Harbor 部署在 demo-project 中,点击下一步

  4. 应用配置页面,编辑 Harbor 的配置文件,请注意以下字段。

    type:访问 Harbor 服务的方式。本示例使用 nodePort

    tls:指定是否启用 HTTPS。多数情况下设置为 false

    externalURL:暴露给租户的 URL。

    备注

    • 请指定 externalURL,如果您访问 Harbor 有问题,该字段会对解决问题非常有用。
    • 请确保在本教程中使用 HTTP 协议和其对应的 nodePort。有关更多信息,请参见常见问题中的示例配置。

    配置编辑完成后,点击部署继续。

  5. 稍等片刻待 Harbor 启动并运行。

步骤 2:访问 Harbor

  1. 基于配置文件中 expose.type 字段的设置,访问方式可能会不同。本示例使用 nodePort 访问 Harbor,按照先前步骤中的设置,访问 http://nodeIP:30002

    备注

    取决于您的 Kubernetes 集群的部署位置,您可能需要在安全组中放行端口并配置相关的端口转发规则。

  2. 使用默认帐户和密码 (admin/Harbor12345) 登录 Harbor。密码由配置文件中的 harborAdminPassword 字段定义。

常见问题

  1. 如何启用 HTTP 登录?

    在步骤 1 中将 tls.enabled 设置为 falseexternalURL 的协议必须和 expose.type.ports 相同。

    如果您使用 Docker 登录,请在 daemon.json 中将 externalURL 设置为 insecure-registries 其中之一,然后重新加载 Docker。

    下面是示例配置文件,供您参考。请注意阅读注解。

    ## 请注意,192.168.0.9 是示例 IP 地址,您必须使用自己的地址。
    expose:type: nodePorttls:enabled: falsesecretName: ""notarySecretName: ""commonName: "192.168.0.9"  # 将 commonName 更改成您自己的值。nodePort:# NodePort 服务的名称。name: harborports:http:# 使用 HTTP 服务时,Harbor 监听的服务端口。port: 80# 使用 HTTP 服务时,Harbor 监听的节点端口。nodePort: 30002https:# 使用 HTTPS 服务时,Harbor 监听的服务端口。port: 443# 使用 HTTPS 服务时,Harbor 监听的服务端口。nodePort: 30003# 仅在 notary.enabled 设置为 true 时需要此配置。notary:# Notary 监听的服务端口。port: 4443# Notary 监听的节点端口。nodePort: 30004externalURL: http://192.168.0.9:30002 # 使用您自己的 IP 地址。# Harbor admin 的初始密码。启动 Harbor 后可以通过主页修改。
    harborAdminPassword: "Harbor12345"
    # 用于加密的密钥,必须是包含 16 个字符的字符串。
    secretKey: "not-a-secure-key"
    
  2. 如何启用 HTTPS 登录?

    a. 使用自签名证书。

    • 在步骤 1 中将配置文件中的 tls.enabled 设置为 true,并对应编辑 externalURL
    • 将 Pod harbor-core/etc/core/ca 中存储的自签名证书复制到您的主机。
    • 先在您的主机中信任该自签名证书,然后重启 Docker。

    b. 使用公共 SSL。

    • 将证书添加为密钥 (Secret)。
    • 在步骤 1 中将配置文件中的 tls.enabled 设置为 true,并对应编辑 externalURL
    • 编辑 tls.secretName

有关更多信息,请参见 Harbor 文档。

原文链接:https://kubesphere.com.cn/docs/application-store/built-in-apps/harbor-app/

在 KubeSphere 中部署 Harbor相关推荐

  1. KubeSphere中部署Minio服务

    假设我们已经创建好了KubeSphere服务,并且已经获取了账号和密码,具有操作某一个企业空间下面某一个子项目的权限,当前我们准备在KubeSphere中部署的服务是Minio.首先使用个人的账号和密 ...

  2. 在KubeSphere中部署微服务(阡陌)+ DevOps

    一.微服务的一般部署顺序 第一步:部署中间件,如 mysql.redis.es.mq 第二步:部署注册中心,如 nacos 第三步:部署除了 getway 以外的后端服务 第四步:部署 getway ...

  3. 想在 KubeSphere 中进行自定义监控?来瞧瞧这

    11月初,KubeSphere 发布了 3.2.0 版本,新版本为项目网关增配了整套监控及管理页面,同时引入了集群网关来提供集群层面全局的 Ingress 网关能力. 为了让用户更了解如何在新版 Ku ...

  4. Python中fastapi构建的web项目使用.gitlab-ci.yml文件在KubeSphere中进行自动部署

    首先需要保证的是我们所创建的Python项目通过Dockerfile文件构建成docker镜像以后,创建并启动容器时项目可以正常跑起来,假设当前这些前置步骤已经完成.由于需要使用.gitlab-ci. ...

  5. 在 Kubernetes 中部署高可用 Harbor 镜像仓库

    该文章随时会有校正更新,公众号无法更新,欢迎订阅博客查看最新内容:https://fuckcloudnative.io 前言 系统环境: kubernetes 版本:1.18.10 Harbor Ch ...

  6. 关于kubesphere metrics-server部署失败的问题

    如果k8s集群中已经部署过metrics-server,那么直接禁掉kubesphere中的即可. metrics_server:enabled: false

  7. Kubernetes - - k8s - v1.12.3 Helm持久化部署Harbor集成OpenLDAP登录

    1,基本概念 前几章部署了harbor和ldap,本节将部署harbor使用openLDAP验证,部署方式与之前相同,只是改了adminserver-cm.yaml的AUTH_MODE: " ...

  8. 一:部署harbor镜像仓库

    Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry 也是非常必要的.之前介绍了Docke ...

  9. 云原生yaml部署harbor

    云原生yaml部署harbor 1 .创建自定义证书 安装 Harbor 我们会默认使用 HTTPS 协议,需要 TLS 证书,如果我们没用自己设定自定义证书文件,那么 Harbor 将自动创建证书文 ...

最新文章

  1. 点击TableView任一行跳转详情页面会跳转两次的解决办法
  2. Oracle中的系统权限管理
  3. MVC把表格导出到Excel
  4. nodeJs的学习之路(1)
  5. java8新特性(1)--- lambda表达式
  6. SQL Server数据库迁移最佳实践,可降低风险和停机时间
  7. 设置返回IOS开发(26)之UITableView的页眉和页脚
  8. python3.5安装pip_python详细安装pip教程
  9. SD内存卡禁止写入只读怎么办?另类SPI模式修复坏卡
  10. 创业十年的感悟,创业者首先要让自己活下去
  11. 怎么批量提取html文件中的链接,excel怎么批量提取超链接
  12. 【无标题】微信小程序:强制更新(测试编译)
  13. Java Word中的文本、图片替换功能
  14. 中科院计算机信息暑期学校,中国科学院大学首期“电子信息技术”暑期学校正式开幕...
  15. 帝国cms更新php,帝国CMS自动刷新首页的方法
  16. oppo手机计算机的隐藏功能介绍,OPPO手机6大隐藏功能,你知道吗
  17. 使用 Python 读取 json 格式文件并查重
  18. PCB高速信号布线技巧
  19. 多模态学习研究进展综述
  20. 湖仓一体(Lakehouse)是什么?

热门文章

  1. MySQL 笔记1 -- 安装MySQL及Navicat
  2. freebsd原理与设计精要(1)-freebsd与unix简介
  3. 【Python】Python的类和对象(长文系列第⑤篇)
  4. 【机器学习】详解 BackPropagation 反向传播算法!
  5. 【机器学习基础】数学推导+纯Python实现机器学习算法26:随机森林
  6. 【Python入门】Python之shutil模块11个常用函数详解
  7. 技术实践 | Web 端实现 RTC 视频特效的解决方案
  8. Flex Basis与Width的区别
  9. bzoj4563放棋子
  10. acm之简单博弈 Nim Bash Wythoff