1-helm简介

33 阅读2分钟

Helm的目标

Kubernetes有很多种资源:Pod、ConfigMap、Deployment和Service等等。

通常一个应用程序需要不止一个资源。

例如,WordPress CMS系统可以在Kubernetes内部运行。

通常情况下,它至少需要:

一个Deployment(用于WordPress服务器)、

一个ConfigMap(用于配置)、 一个Secret(用于保存密码)、 几个Service对象、 一个StatefulSet(用于运行数据库)和几个基于角色的访问控制(RBAC)规则。

Kubernetes对基本WordPress站点的描述已经超过了数千行YAML。

Helm的核心思想是,所有这些对象都可以打包在一起进行安装、更新和删除。

Helm有三个主要目标:

1.轻松地实现从“从零到Kubernetes”;

2.提供与操作系统类似的软件包管理系统;

3.强调将应用程序部署到Kubernetes的安全性和可配置性。

轻松地实现从“从零到Kubernetes”

Kubernetes过去很难设置,通常需要新用户编译Kubernetes源代码,然后使用一些shell脚本来运行Kubernetes。

一旦集群启动,新用户就需要从头开始编写YAML。

我们希望颠倒学习周期:不要求用户从基本示例开始,尝试构建自己的应用程序,而是希望为用户提供现成的生产就绪示例。

用户可以安装这些示例,查看它们的实际操作,然后了解Kubernetes是如何工作的。

这曾经是(至今仍然是)我们编写Helm的第一要务:让Kubernetes更易于使用。

拥有现有Kubernetes集群的新Helm用户应该能够在5分钟甚至更短的时间内完成从下载到安装应用程序的步骤。

软件包管理

Kubernetes就像一个操作系统

大多数操作系统都由软件包管理器支持

软件包管理器的任务是使在操作系统上查找、安装、升级和删除程序变得容易。

将Kubernetes设想为一个操作系统时,helm就像一个软件包管理器。

·Helm提供软件包存储库和搜索功能。 ·Helm拥有安装、升级和删除命令。 ·Helm定义了在安装软件包之前配置软件包的方法。 ·Helm提供了查看已安装内容和配置方式的工具。

Helm中的操作也是区分命名空间的

可以将同一个应用程序安装到两个不同的命名空间中。