加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

Helm Charts 一键安装云原生应用指南

发布时间:2019-09-02 05:39:02 所属栏目:移动互联 来源:邓洪超
导读:划重点: 1.开放云原生应用中心 (简称 AppHub ) 上线,https://developer.aliyun.com/hub。 App Hub 同步了官方 Helm Hub 里的所有应用,还自动替换了这些 Charts 里所有不可访问的镜像 URL(比如 gcr.io, quay.io 等),国内开发者也可以通过 helm install
副标题[/!--empirenews.page--]

划重点:

1.“开放云原生应用中心” (简称 AppHub ) 上线,https://developer.aliyun.com/hub。

App Hub 同步了官方 Helm Hub 里的所有应用,还自动替换了这些 Charts 里所有不可访问的镜像 URL(比如 gcr.io, quay.io 等),国内开发者也可以通过 helm install “一键安装”应用了。

2.实例:用 Helm V3 快速部署 Guestbbook

3.第一届云原生应用大赛上线,上传你的Helm Charts 就有机会赢取 cherry 键盘,苹果 AirPods 耳机啦

------ 正文 ------

这是大厂程序员小张普普通通的一个早晨,大家好像在讨论着什么:

“什么?听说隔壁公司在用 K8s 发布应用了?”

“据说在用 Helm !”

像往常,小张根本不关心这些无聊的讨论。他稳稳的坐在办公桌前,打开公司内部自研的、魔改 Gitlab 打造的项目管理系统,点击了好几个 Button 之后,开始一天辛勤的劳作。

但这一次不知道为何,小张的内心居然有点慌:“ Helm?啥是 Helm ?”

------ 分割线 ------

Helm—— K8s 应用部署与打包工具

如果一个用户想要部署起来一个 K8s 应用,最快捷的方法是什么呢?

我们知道,Kubernetes (简称 k8s ) 是一个能够部署和管理容器的平台。然而,在 k8s 里还没有抽象到“应用”这一层概念。一个应用往往由多个 k8s 资源 ( Deployment、Service、ConfigMap )组成。所以,我们需要一个工具在 k8s 之上来部署和管理一个应用所包含的资源( K8s API Resource ),这就是 Helm 所做的事情。

除此以外,Helm 定义了一套 Chart 格式来描述一个应用。怎么理解 Chart 呢?打个比方,一个安卓程序打包成 APK 格式,就可以安装到任意一台运行安卓系统的手机上。如果我们把 k8s 比做安卓系统,K8s 应用比做安卓程序,那么 Chart 就可以比做 APK。这也意味着,K8s 应用只要打包成 Chart ,就可以通过 Helm 部署到任意一个 k8s 集群上。

通常来说,我们可以直接使用别人已经做好的 Helm Chart ,就跟使用 Docker 镜像一样。所以,Helm 社区已经维护了一个官方 Helm Hub,这个 Hub 里包含的应用非常丰富,是目前云原生开发者搜索和下载应用的主要站点。

AppHub—— Helm Hub 的中国小站

不过,遗憾的是,在国内使用 Helm Hub,对于绝大多数开发者来说都是很痛苦的一件事情。

原因很简单,随便打开一个 Charts 文件,你就会看到这个文件里充斥着大量的不可访问的镜像 URL :

Helm Charts 一键安装云原生应用指南

Helm Charts 一键安装云原生应用指南

或者是依赖根本访问不到的 Charts 库:

Helm Charts 一键安装云原生应用指南

咱们软件工程师的时间这么宝贵(少),根本不想花时间解决这些无聊的网络问题上(大雾)!

可是,看着国外的程序员们通过一条 helm install 命令就把应用部署起来,咱们怎么感觉还是有点酸呢 ……

所以在正式开始探索云原生应用管理之前,我们首先要为你介绍一个叫做“开放云原生应用中心” ( Cloud Native App Hub,简称 AppHub ) 的服务,它的主页是:https://developer.aliyun.com/hub。

什么是“开放云原生应用中心”?

AppHub 是一个托管在国内公有云上、全公益性的 Helm Hub “中国站”。这个站点的一个重要职责,就是把所有 Helm 官方 Hub 托管的应用自动同步到国内;同时,自动将 Charts 文件中的 gcr.io 等所有有网络访问问题的 URL 替换成为稳定的国内镜像 URL 。

这样,中国的开发者终于也可以随心所欲的搜索 Charts,然后直接使用 helm install 命令将这些应用安装在全世界任何一个 Kubernetes 集群当中。截止到目前为止, Helm Hub 中国镜像站已经实时全量同步了 Helm Hub 北美官方站 https://hub.helm.sh/ 的所有内容,同时还精选同步了比如 GitLab 等多个热门的第三方 Charts Repo。目前已总计上线了 344 个 Charts,并且还在不断增加中。

接下来,我们就进入喜闻乐见的实践环节!

实例:用最快的速度部署 Guestbook

首先,当然是安装 Helm 。

在这里我们强烈推荐你使用 Helm v3 版本。

Helm v3 跟 Helm v2 的区别就像 Python 2 和 3 那么大,而且还比 Helm v2 要好用的多(比如:不需要安装服务端组件 Tiller)。至于为什么 是 Helm v3?可以去搜索《为什么你必须尽快转向 Helm v3 》文章,会为你解释这个事情。

而为了方便国内开发者使用,我们已经自动同步了 Helm v3 二进制文件的下载链接到国内(一定要试,真的是秒下):

  • MacOS amd64 tar.gz
  • MacOS amd64 zip
  • Linux 386
  • Linux amd64
  • Linux arm64
  • Windows amd64

下载到 Helm 二进制文件直接解压到 $PATH 下就可以使用了。

接下来,我们使用 Helm 快速部署一个 guestbook 应用。这里假设你有一个阿里云 Kubernetes 服务在运行了(如果没有的话也没关系,下面还有自建 K8s 集群的例子)。

第一步是添加 apphub 作为你的 Helm Hub Repo:

  1. $ helm repo add apphub https://apphub.aliyuncs.com 

可以直接在命令行搜索 guestbook:

  1. $ helm search guestbook 
  2. NAME                       CHART VERSION   APP VERSION DESCRIPTION 
  3. apphub/guestbook           0.2.0           1.0.0       A Helm chart to deploy Guestbook three tier web... 

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读