最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

才云 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:26510

评论

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

客户案例|宜泊科技怎样实现智慧停车可观测

观测云

降本:云原生可观测性新定义

观测云

关于 eBPF 安全可观测性,你需要知道的那些事儿

OpenAnolis小助手

Linux 开源 内核 ebpf 龙蜥技术

最全元宇宙概念分析!元宇宙为何发展于区块链?

TinTinLand

区块链 人工智能 元宇宙

阿里开源的升级思考:开源委员会的三个关键行动点

阿里技术

开源

Python图像处理丨基于K-Means聚类的图像区域分割

华为云开发者联盟

Python 人工智能 图像处理 企业号九月金秋榜

浅析 Web3.0 DApp(去中心化应用程序)设计架构

掘金安东尼

前端 Web3.0 9月月更

需求变更,敏捷项目应如何做?

敏捷开发

Scrum 敏捷 需求管理 需求 Scrum团队

如何选择大数据培训课程

小谷哥

面试突击:什么是跨域问题?如何解决?

Java快了!

java;

Hi3861 通过UART串口协议与其它开发板进行通信

OpenHarmony开发者

OpenHarmony

月满中秋夜|中秋和 Jina AI 一起过

Jina AI

开源 人工智能’ 神经搜索

如何构建企业级的容器云PaaS平台

阿泽🧸

PaaS 9月月更

中秋团圆的N种方式,华为用户get了吗?

最新动态

50岁还在写代码,大龄前端程序员到底有多吃香

千锋IT教育

【活动预告】数据集成海外专场Meetup:走进Shopee,聊透SeaTunnel优化实践

Apache SeaTunnel

技术分享 数据同步 数据集成 社区活动

明源云与华为联合发起828 B2B企业节,共同成就好生意!

IT资讯搬运工

华为

小红书自研小程序:电商体验与效果优化的运行时体系设计

小红书技术REDtech

小程序 构建 小程序运行时 JS Bridge

大数据培训班学习靠谱吗?

小谷哥

益思芯科技加入龙蜥社区,推动网络和存储DPU芯片创新落地

OpenAnolis小助手

开源 芯片 龙蜥社区 CLA 益思芯科技

VLDB'22 HiEngine极致RTO论文解读

华为云开发者联盟

数据库 云原生 后端 华为云 企业号九月金秋榜

为什么越来越多博士逃离科研?

博文视点Broadview

web前端培训班怎么选?

小谷哥

零基础应该在大数据培训机构学习

小谷哥

如何让开发者直接在应用后台控制用户的运动状态?

HMS Core

中秋节,华为云AI送上超级大月亮制作教程,体验赢开发者键鼠套装

华为云开发者联盟

人工智能 华为云 中秋节 企业号九月金秋榜

这份数据安全自查checklist请拿好,帮你补齐安全短板的妙招全在里面!

京东科技开发者

数据库 安全 数据安全 云安全 京东云

Authing 郑凌:我眼中的 Authing

Authing

构建运维监控体系设计思路概述

穿过生命散发芬芳

监控体系 9月月更

下一代 SCA:流水线成分分析

SEAL安全

DevSecOps SCA 软件成分分析 软件组成分析 软件供应链安全

10分钟带你学习华为云数据库RDS

wljslmz

数据库 华为云 9月月更

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