初探云原生应用管理(一): Helm 与 App Hub

日期:2019-07-11 21:37:34 来源:互联网 编辑:小狐 阅读人数:896

系列介绍:初探云原生应用系列是介绍如何用云原生技术来构建、部署、和应用的内容专辑。做这个系列的初衷是为了推广云原生应用的最佳实践,以及传播开源标准和知识。通过这个系列,希望帮助大家学到 Kubernetes、Helm、Gitops、Kustomize 等新知识。

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

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

“据说在用 Helm !”

但这一次不知道为何,小张的内心居然有点慌:

“ 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 集群上。

AppHub: Helm Hub 的中国小站

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

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

初探云原生应用管理(一): Helm 与 App Hub(图1)

初探云原生应用管理(一): Helm 与 App Hub(图2)

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

初探云原生应用管理(一): Helm 与 App Hub(图3)

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

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

AppHub 是一个托管在国内公有云上、全公益性的 Helm Hub “中国站”它的后端由阿里云容器平台团队的三位工程师利用 20% 时间完成。

而这个站点的一个重要职责,就是把所有 Helm Hub 托管的应用自动同步到国内;同时,自动将 Charts 文件中的 gcr.io 等所有有网络访问问题的 URL 替换成为稳定的国内镜像 URL 。

这样,国内的者也可以自由的使用 helm install 来安装应用了!

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

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

首先,当然是安装 Helm 。

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

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

MacOS amd64 tar.gz

MacOS amd64 zip

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

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

初探云原生应用管理(一): Helm 与 App Hub(图4)

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

初探云原生应用管理(一): Helm 与 App Hub(图5)

只需一行命令即可:

初探云原生应用管理(一): Helm 与 App Hub(图6)

访问 Guestbook 服务

部署完成后,运行以下命令来查询并等待 pods 启动完毕 ( Running )

初探云原生应用管理(一): Helm 与 App Hub(图7)

初探云原生应用管理(一): Helm 与 App Hub(图8)

通过 External IP 即可访问 guestbook 服务:

初探云原生应用管理(一): Helm 与 App Hub(图9)

使用 Minikube 或者自建 K8s 集群?

实际上,K8s 本身是不区分云上服务还是自建集群的。只不过在没有云的负载均衡服务的话,Service 的访问方式会稍微麻烦一些,比如使用 NodePort :

初探云原生应用管理(一): Helm 与 App Hub(图10)

这条命令执行完之后,应用会自动提示你接下来的访问方式。而通过--set 这种方式设置应用参数到底是怎么回事,我们后面的文章会细聊。

如果是 Minikube 的话,还需要把这个 NodePort Service 从 Minikube 里映射出来才能访问:

初探云原生应用管理(一): Helm 与 App Hub(图11)

试用“一键安装” (体验功能)

除了正常的部署方法, AppHub 上也可以通过网页 UI 来体验一键部署 Chart 到任何云的 k8s 上。

初探云原生应用管理(一): Helm 与 App Hub(图12)

不过,说起 Roadmap 的话:

AppHub 6 个月内的 Roadmap ,都在 Github 上开源!

是的,你可以通过 Github 来随时对这个 Helm Hub 中国小站点提出你的改进思路。比如:如何更好的做“应用定制”如何对接和托管你自己的 Charts Repo ?等等。

我们的口号是:每一位中国者,都是我们的 PM !认真脸

远不止 Helm !

可以看到,通过 Helm 快速部署起来K8s 应用的过程,使用门槛和心智负担都是非常低的。而相比于传统的应用构建、编排和发布的流程,Helm + K8s 的自动化组合正在迅速成为云时代提升者效率的不二法宝。

而这里介绍到的所有同步自 Hub Repo 的应用 Charts ,全都托管在这个 Github 上: cloudnativeapp/charts。大家有对 AppHub 相关的任何吐槽,都欢迎来这个 Repo 提 issue ;也欢迎来通过提交 pull requests 把你的 Charts 和 Repo 加入到 AppHub 上。

不过,如果深入使用过 Helm 一段时间后,你可能会有些其他的感受:

比如: “Helm 里的 Release 的概念到底是啥意思? Helm 的 Rollback 又是咋回事儿,跟 K8s 是啥关系?”

“Helm 对 K8s 应用的流程,好像不是那么的 Native 啊,总感觉哪里不对啊。”

敬请期待吧!

简介: 邓洪超,阿里云工程师,前 CoreOS 软件工程师、Kubernetes Operator 机制的初始之一、Operator 第二人(因为第一人是李响)对 K8s 应用体系有较多的研究和经验。

-------------------------------------------

本文相关词条概念解析:

应用

现代人常说的应用,一般指手机和平板电脑的应用。在面向对象上通常分为个人用户应用(面向个人消费者)与企业级应用(面向企业),在移动端系统分类上主要包括iOSApp(如:同步推等)、AndroidApk(如:AirDroid、百度应用等)和windowsphone的xap和appx。

网友评论
徐太太太太
徐太太太太
利用播客,耳听心记
2019-07-13 07:52 927
8090小男人
8090小男人
成功人士皆为读书家
2019-07-14 00:06 452
一步一脚印b
一步一脚印b
今年初的微信公开课上,微信之父张小龙人还没出场,就先把自己的手机屏展示了出来
2019-07-13 13:49 485
lili0506
lili0506
初探阅读的人该如何读书?
2019-07-19 01:38 751
孤琴候萝径
孤琴候萝径
HTML5和原生APP有什么不一样?
2019-07-12 23:36 114
tedi泰泰迪
tedi泰泰迪
iphone用原生壁纸是否比用下载壁纸流畅?
2019-07-11 20:33 594
一生别无所
一生别无所
微信app属于原生开发吗?
2019-07-15 11:13 909
爱因斯坦继承人
爱因斯坦继承人
想要养成读书习惯,支持这个习惯存在的理由是需要有可以支配这个行动的思想
2019-07-14 11:53 457
小微_34
小微_34
初级阶段主要是讲述不善于读书的人所走的误区,怎么激发自己读书的热情,养成读书体质
2019-07-16 15:47 459
不一样的标
不一样的标
谷歌原生与华为EMUI那个好用?
2019-07-16 02:56 293
不懂君心1
不懂君心1
而他当时的最高水准是六千多分,“花了很多时间去练习”,获得称号“无聊大师”“立地成佛”
2019-07-12 17:34 300
helloboy4
helloboy4
为什么要写作业呢,留心你的思想,思想可以变成语言,留心你的语言,语言可以变成行动
2019-07-20 17:15 50
我就是江北
我就是江北
最大的优势就是,购物类小程序打开后界面类似其他商城App,让用户购物体验更好
2019-07-17 12:39 658
相关文章
【一家开了三十年的元宵店初探及元宵与汤圆的差异化分析】

【一家开了三十年的元宵店初探及元宵与汤圆的差异化分析】

【一家开了三十年的元宵店初探及元宵与汤圆的差异化分析】[详情]

开心笑话:有女朋友就不用自己洗衣服?想多了,你得洗两个人的!

开心笑话:有女朋友就不用自己洗衣服?想多了,你得洗两个人的!

开心笑话:有女朋友就不用自己洗衣服?想多了,你得洗两个人的![详情]

苍山秀峰白云恋,草甸蓝泉如明镜-初探苍山云弄峰

苍山秀峰白云恋,草甸蓝泉如明镜-初探苍山云弄峰

苍山秀峰白云恋,草甸蓝泉如明镜-初探苍山云弄峰[详情]

网站地图    Copyright     2016-2018  资讯网   All rights reserved.