kubernetes集群管理系列讲座(十三)Helm简介

2020-08-08  本文已影响0人  炼狱腾蛇Eric

课程目标

1. helm概念

我们在kubernetes集群中创建应用的时候,一般会使用清单文件manifest来规范我们的应用。典型的容器化应用程序会包含很多清单。Deployment、Service和ConfigMap的清单。我们可能还会创建一些Secret、Ingress和其他对象。每一个都需要一份清单。

从1.4版本开始,为了让软件的部署更加的规范化,Helm项目应运而生。Helm类似于yum或者apt这样的包管理器,而Chart类似于包。有了Helm,我们就可以打包所有这些清单文件,并使它们作为一个单独的tar包使用。我们可以将tar包放在一个存储库中,搜索该存储库,发现一个应用程序,然后使用一个命令部署并启动整个应用程序。

服务器运行在Kubernetes集群中,而客户端是本地的,也可以使本地笔记本电脑。我们可以使用客户端来连接到多个应用程序存储库。

2. helm v2与helm v3

2.1. Helm v2和Tiller

helm工具使用一系列YAML文件将Kubernetes应用程序打包成一个chart或包。这种方式允许用户之间简单的共享,使用模板方案进行优化,以及来源跟踪等。

zgxbwiuexxtg-BasicFlow-HelmandTiller.png file

2.2. 基础的Helm和Tiller的流程

Helm的v2版本是由两个组件构成的

Helm v2会在集群中部署一个Tiller的pod,但是这样会引发很多安全和集群权限的问题。而Helm v3就不用部署这个pod了。

使用Helm客户端,我们就可以浏览包存储库(包含已发布的Chart),并在Kubernetes集群上部署这些Chart。kubernetes将下载Chart并将请求传递给Tiller来创建应用。这个应用是由运行在Kubernetes集群中的各种资源组成。

2.3. Helm v3

最近Helm彻底的翻修了一遍,流程和命令都有很大的改变。如果我们正在使用Helm的v2版本,那么可能需要花些时间去升级和集成这些改变。

最显著的变化之一就是Tiller的移除。这是一个一直存在的安全问题,因为pod需要提升权限才能部署Chart。在新版本中,这个功能被单独放在了命令行中,不再需要初始化才能使用。

在v2中,对chart和deployment的更新需要使用双向策略合并来完成。这需要将先前的manifest和预期的menifest进行比较,而不是在helm命令之外进行编辑。目前的检查是使用另外的方法,检查目前对象的状态。

还有其他的改变,比如软件安装不再自动生成名称。我们必须手动指定名称,要不就传递--generated name参数

3. 部署helm v3

由于helm的v2版本存在一些安全问题,所以全部转向v3是大势所趋,这里就不再说v2的内容了,我们直接部署v3。

3.1. 安装helm

我们这里以linux64版本举例,我们首先要保证kubectl命令能够正确连接到我们的kubernetes集群

3.2. 管理应用

为了方便大家学习,请大家加我的微信,我会把大家加到微信群(微信群的二维码会经常变)和qq群821119334,问题答案云原生技术课堂,有问题可以一起讨论

2020 CKA考试视频 真题讲解 https://www.bilibili.com/video/BV167411K7hp

2020 CKA考试指南 https://www.bilibili.com/video/BV1sa4y1479B/

2020年 5月CKA考试真题 https://mp.weixin.qq.com/s/W9V4cpYeBhodol6AYtbxIA

上一篇下一篇

猜你喜欢

热点阅读