报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

才云 Caicloud 与 VMware 项目合作,实现 Harbor 与 Kubernetes 对接

  • 2020-03-13
  • 本文字数:2001 字

    阅读完需:约 7 分钟

才云Caicloud与VMware项目合作,实现Harbor与Kubernetes对接

Harbor 项目介绍:

开源项目 Harbor 作为 CAA(Cloud Applicaiton Accelerator)云应用加速项目由 VMware 中国研发中心启动。CAA 提供了一整套工具来提升中国和其他国家的云平台云计算研发的效率。CAA 也包含了类似于 registry server、mirror server、去中心的镜像分布器(decentralized image distributor)等工具。


Harbor 项目旨在提供企业级镜像服务。它基于开源的 Docker Registry server,在其基础上增加了很多企业需要的功能。Harbor 设计针对私有云环境。私有镜像,企业会很关注安全问题。此外,私有镜像不需要从公共网络去下载镜像,从而提高了研发生产力。这对于没有很好网络的容器开发使用者也提供了很大帮助。

Harbor 项目功能:

Role Based Access Control (基于角色的准入控制): 用户和 docker 代码库通过“项目”的形式来组织,在同一个 namespace 下,一个用户对镜像可以有不同的 permission


Graphicaluser portal (UI 入口): 用户可以轻松浏览、搜索 docker 的代码库,管理项目和 namespaces


AD/LDAP support (AD/LDAP 支持): Harbor 接入企业用户认证和管理已有的 AD/LDAP


Auditing(审计): 所有代码库操作都会被追踪且可以用于审计目的


Internationalization (国际化): 提供中英文便于本土化


RESTful API: 用来给大多对 Harbor 的管理操作,无需用到管理软件整合,很便利。

才云 Caicloud:实现 Harbor 与 Kubernetes 对接

作为一个 Docker Registry,Harbor 原生态地支持通过 Docker 的方式部署,然而直接通过 Docker 或者 Docker Compose 无法很好的做到容错、扩容、检测等等工作。Kubernetes 作为一个容器管理平台就能够很好解决上述问题。


要将 Harbor 部署到 Kubernetes 上,首先需要将 Harbor 的组件全部容器化。因为 Harbor 已经支持使用容器部署,所以大部分的容器化工作已经完成。


但在 Kubernetes 下的环境和本机的环境不同,所以在原有镜像的基础上我们还需要处理以下几个问题:


  1. 配置文件。在本地环境下配置文件是临时加载的,但是这样在网络环境下并不容易扩展。因为如果一台机器宕机了之后就很难保证相同的配置文件能够一起被转移到其他机器上。所以我们需要将之前预设好的配置文件一起存放到 Docker 镜像当中,比如对于 registry 的镜像我们要进一步封装为:


FROM library/registry:2.3.0


ADD ./config/registry/ /etc/registry/


ADD./kubernetes/dockerfiles/registry-config.yml /etc/registry/config.yml


CMD ["/etc/registry/config.yml"]


  1. Docker Registry 一个很重要的配置信息就是 Registry 的 Host。一方面,要将 Harbor 部署到 Kubernetes 上,那么这个配置信息在编译镜像之前就需要确定;另一方面,在还没有真正运行起来之前 Kubernetes 是不会预先给服务分配 IP 的。这就形成了一个死循环!要解决这个死循环有两个办法:

  2. a)先启动 Registry 的 Service 得到一个 IP,然后根据 IP 编译完镜像之后再启动 Replica Controller。

  3. b)使用 DNS。在配置镜像的时候把 Registry Host 配置成 DNS name,这样当服务在 kubernetes 中起来之后我们可以再通过配置 DNS 的方式使得这个 DNS 指向正确的 IP。


当所有镜像都编译好之后,我们就可以通过 kubectl 来启动 Harbor 的所有组件了。 在 kubernetes 上启动 Harbor 的所有 yaml 文件都在:https://github.com/vmware/harbor/tree/master/Deploy/kubernetes


当所有服务都建立成功之后,我们就可以通过配置好的 DNS 或者 Service IP 来访问 Harbor 的网站了。但是如果要存储镜像,我们还需要配置证书(Certificate)。因为 Docker Registry 都是采用的 https。如果没有证书,会得到类似下面的错误:


Error response from daemon: invalid registryendpoint https://{HOST}/v0/: unable to ping registry endpointhttps://{HOST}/v0/ v2 ping attempt failed with error: Gethttps://{HOST}/v2/: EOF v1 ping attempt failed with error: Get https://{HOST}/v1/_ping:EOF. If this private registry supports only HTTP or HTTPS with an unknown CAcertificate, please add `--insecure-registry {HOST}` to the daemon's arguments.In the case of HTTPS, if you have access to the registry's CA certificate, noneed for the flag; simply place the CA certificate at/etc/docker/certs.d/{HOST}/ca.crt
复制代码


获取证书比较麻烦,有一个方法可以使得这个部署好的 Harbor 先用起来:


  1. 先打开/etc/default/docker 文件:


sudo vi /etc/default/docker


  1. 在 DOCKER_OPTS 中把 DNS 或者 IP 加到 insecure-registry 列表里:


DOCKER_OPTS="$DOCKER_OPTS–insecure-registry={HOST}"


  1. 重启 docker daemon:


sudo service docker restart

结语

VMware 开源项目 Harbor 作为 Docker 私有镜像库,跑在 Kubernetes 上之后,能享受到 Kubernetes 作为容器管理平台。


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/1XtK2ZOBgd8A0YYZK4SfqA


2020-03-13 17:26653

评论

发布
暂无评论
发现更多内容

头一次见!阿里牛人上传的600页JVM垃圾优化笔记飙升GitHub榜首

做梦都在改BUG

Java 性能优化 JVM 垃圾回收

新兴应用场景层出不穷,电源管理芯片市场前景广阔

华秋电子

爱奇艺统一实时计算平台建设

Apache Flink

大数据 flink 实时计算

云数据库 TiDB 试用体验总结

TiDB 社区干货传送门

版本测评

BSN-DDC基础网络详解(四):资金账户充值

BSN研习社

体验ChatGPT后,陷入沉思...

Openlab_cosmoplat

开源 行业趋势 ChatGPT

NFTScan x TiDB丨一栈式 HTAP 数据库为 Web3 数据服务提供毫秒级多维查询

TiDB 社区干货传送门

AI开发实践丨客流分析之未佩戴口罩识别

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

面试官:JVM是如何分配和回收堆外内存的?

做梦都在改BUG

Java JVM 垃圾回收

云数据库TiDB试用初体验

TiDB 社区干货传送门

6.x 实践

一次不兼容ddl导致的cdc问题

TiDB 社区干货传送门

故障排查/诊断

【2.24-3.3】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

TiDB Operator备份TiDB集群到NFS持久卷

TiDB 社区干货传送门

集群管理 管理与运维 故障排查/诊断 安装 & 部署 备份 & 恢复

【图解】白嫖阿里云价值3.3万的TiDB

TiDB 社区干货传送门

实践案例 管理与运维 扩/缩容 6.x 实践

天下武功唯快不破:TiDB 在线 DDL 性能提升 10 倍

TiDB 社区干货传送门

2023年2月中国网约车领域月度观察

易观分析

网约车 出行服务

TIDB云数据库试用体验

TiDB 社区干货传送门

安装 & 部署 扩/缩容 6.x 实践

基于Python+uiautomation的windowsGUI自动化测试概述

Python 自动化测试 unittest WindowsGUI UIaotumaiton

全局视角看技术-Java多线程演进史

京东科技开发者

jdk 多线程 Thread 企业号 3 月 PK 榜

堡垒机有硬件吗?推荐使用硬件堡垒机吗?

行云管家

云计算 网络安全 云服务 堡垒机

面试官:在高并发情况,你是如何解决单用户超领优惠券问题的?

做梦都在改BUG

Java redis 高并发

解决80%的工作场景?GitHub爆赞的Java高并发与集合框架,太赞了

做梦都在改BUG

Java 高并发 JUC JCF

数据库日常实操优质文章分享(含Oracle、MySQL等) | 2023年2月刊

墨天轮

MySQL 数据库 oracle postgresql 性能优化

Tapdata Cloud 基础课:新功能详解之「微信告警」,更及时的告警通知渠道

tapdata

数据库·

TiDB Operator恢复持久卷上的备份文件

TiDB 社区干货传送门

集群管理 管理与运维 故障排查/诊断 安装 & 部署 备份 & 恢复

云数据库 TiDB 体验

TiDB 社区干货传送门

社区活动 6.x 实践

火山引擎DataTester:A/B实验如何实现人群智能化定向?

字节跳动数据平台

大数据 AB testing实战

等保二级必须要上的设备有哪些?需要堡垒机吗?

行云管家

等保 堡垒机 等保二级

平安银行与易观千帆签约合作,加速数字用户资产增长

易观分析

金融 银行

喜讯!华秋电子荣获第六届“高新杯”十大优秀企业奖

华秋电子

备战一年半,我们让最火的开源网关上了云

API7.ai 技术团队

api 网关 APISIX SaaS 平台

才云Caicloud与VMware项目合作,实现Harbor与Kubernetes对接_语言 & 开发_才云科技_InfoQ精选文章