Kunbernetes-容器云应用的安装部署工具Helm

1、Helm介绍

在Kubernetes中部署容器云的应用也是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过helm能够帮助开发者定义、安装和升级Kubernetes中的容器云应用,同时,也可以通过helm进行容器云应用的分享。在Kubeapps Hub中提供了包括Redis、MySQL和Jenkins等参见的应用,通过helm可以使用一条命令就能够将其部署安装在自己的Kubernetes集群中。

helm的整体架构如下图所示,Helm架构由Helm客户端、Tiller服务器端和Chart仓库所组成;Tiller部署在Kubernetes中,Helm客户端从Chart仓库中获取Chart安装包,并将其安装部署到Kubernetes集群中。

image

Helm是管理Kubernetes包的工具,Helm能提供下面的能力:

  • 创建新的charts
  • 将charts打包成tgz文件
  • 与chart仓库交互
  • 安装和卸载Kubernetes的应用
  • 管理使用Helm安装的charts的生命周期

在Helm中,有三个需要了解的重要概念:

  • chart:是创建Kubernetes应用实例的信息集合;
  • config:创建发布对象的chart的配置信息
  • release:chart的运行实例,包含特定的config

1.1 Helm组件

在Helm中有两个主要的组件,既Helm客户端和Tiller服务器:

Helm客户端:这是一个供终端用户使用的命令行工具,客户端负责如下的工作:

  • 本地chart开发

  • 管理仓库

  • 与Tiller服务器交互

    • 发送需要被安装的charts
    • 请求关于发布版本的信息
    • 请求更新或者卸载已安装的发布版本

Tiller服务器:Tiller服务部署在Kubernetes集群中,Helm客户端通过与Tiller服务器进行交互,并最终与Kubernetes API服务器进行交互。 Tiller服务器负责如下的工作:

  • 监听来自于Helm客户端的请求
  • 组合chart和配置来构建一个发布
  • 在Kubernetes中安装,并跟踪后续的发布
  • 通过与Kubernetes交互,更新或者chart

客户端负责管理chart,服务器发展管理发布。

1.2 Helm技术实现

Helm客户端是使用Go语言编写的,它通过gRPC协议与Tiller服务器交互。

Tiller服务器也是使用Go语言编写的,它使用Kubernetes客户端类库(当前是哦那个REST+JSON)与Kubernetes进行通讯。

Tiller服务器通过Kubernetes的ConfigMap存储信息,因此本身没有用于存储数据库。

3、使用Helm

Helm所使用的包格式为chart,chart是描述Kubernetes资源的文件集合。通过chart能够部署类似于memcache等简单的应用,或者能够部署类似于Http服务器、数据库等复杂的应用。此文主要就chart目录、chart.yaml文件和values.yaml文件进行介绍。

3.1 Chart目录结构

在使用Helm之前,先以wordpress为例来看一下一个Chart都包含哪些内容:

wordpress/ Chart.yaml # 必需::包含关于chart信息的YAML文件 LICENSE # 可选: chart的license描述文件 README.md # 可选:可读的说明文件 requirements.yaml # 可选:列示chart依赖的YAML文件 values.yaml # ****必需:chart默认的配置值文件 charts/ # 可选:包含chart所有依赖的目录 templates/ # 可选:包含模板文件的目录 templates/NOTES.txt # 可选:部署后的使用说明

3.2 chart.yaml文件介绍

对于chart来说,chart.yaml文件是必需的文件,此文件的内容如下:

name: 必需,chart的名称 version: 必需,SemVer 2的版本 description: 可选,此项目的一句话描述 keywords: – 可选,此项目的关键词列表 home: 可选,此项目主页面的URL sources: – 可选,此项目的源代码URL列表 maintainers: # 可选 – name: 维护者的名字

email: 维护者的email地址 url: 维护者的URL engine: gotpl # 可选,模板引擎的名称 icon: 可选,被使用的SVG或者PNG格式图标的URL appVersion: 可选,应用的版本 deprecated: 可选,标识吃chart是否将要被废弃 tillerVersion: chart所要求的Tiller服务器的版本

3.3 values.yaml文件介绍

chart的配置文件values.yaml所包含的内容如下例子所示:
imageRegistry: "quay.io/deis" dockerTag: "latest" pullPolicy: "Always" storage: "s3"

chart的配置文件values.yaml所包含的内容如下例子所示:
$ helm install --values=myvals.yaml wordpress
通过给定–values参数的方式,helm会将此参数给定的YAML文件的内容与默认values.yaml文件的内容进行合并,例如在myvals.yaml文件的内容是:
storage: "gcs"
合并后的文件内容将如下所示:
imageRegistry: "quay.io/deis" dockerTag: "latest" pullPolicy: "Always" storage: "gcs"

4 Chart应用仓库

在chart中可以包含一个默认的values.yaml文件,Helm安装命令也允许通过–values参数指定应该YAML文件:
Kubeapps Hub(https://hub.kubeapps.com)作为公共的chart应用仓库,目前在上面已经以chart的格式提供Nginx、Jenkins、Redis等常用应用。在此仓库中可以发现符合自己需要的Kubernetes应用,或者发布自己以chart格式构建的Kubernetes应用。

image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342