Kubernetes Operators和Helm图表(Helm Charts)是互补而非竞争的技术。
在Kubernetes中,Helm图表和Kubernetes Operators都是让任务自动化的便捷工具,这些任务原本需要大量的人工工作。虽然它们都是为自动化而生,但它们并不是完全可互换的工具。来一起看看二者的工作方式,以及什么时候使用它们。
为什么需要Kubernetes Operators和Helm图表?
手动编写YAML文件对于大多数人来说并不容易,而且每次手动编写自定义YAML都是不现实的,而且需要在Kubernetes集群中部署应用程序或修改配置设置。Helm图表和Kubernetes Operators通过为管理员提供了一种将应用程序和配置部署到Kubernetes集群中的简便方法。
而使用Helm还是Operators取决于要部署的应用程序类型以及所需的特殊配置。
Helm用例
Helm是Kubernetes的软件包管理系统。使用称为图表(Charts)的打包格式,用户可以将应用程序,比如Kafka或Apache HTTP打包为其他任何人都可以只用几个命令就可以在Kubernetes集群上部署的格式,而几乎不需要手动更改YAML文件。
如果你熟悉Linux上下文中的软件包管理,那么Helm图表应该很容易理解。它们类似于Debian或RPM软件包,而Helm本身就像apt或dnf。就像你可以在Ubuntu上apt-get install [某些软件包]一样,也可以在Kubernetes上Helm安装[某些软件包],来让应用程序快速启动并运行。
Operators的用例
Operators还将应用程序打包为易于部署的格式,但他们要做的不止这些。使用Kubernetes自定义资源,管理员还可以在程序包中包含大量复杂的配置数据。
因此,可以使用Kubernetes Operators来以完全自动化的方式部署有状态的应用程序;或者数据库模式之类的事情;抑或以特定方式配置集群部署应用程序,来实现高可用性。确实,使用Kubernetes Operators时甚至不需要部署应用程序。用户可以使用Kubernetes Operators来自动执行其他任务,例如执行备份或基于预定义模板以特殊方式配置集群。
与Helm图表不同,Kubernetes Operators不好与其他平台做比较,尽管它们可以与其他类型的工具进行比较。在某些方面,你可以认为Kubernetes Operators就像部署在Linux服务器上来修改服务器配置的Bash脚本一样,尽管与一般的Bash脚本相比,Kubernetes Operators的打包和部署更加简洁。
Kubernetes Operators在某些方面也许类似于操作系统镜像文件,可以使用它来部署以特定方式设置的操作系统环境的副本。但是,Kubernetes Operators比镜像文件更容易修改和部署。如果要部署OS镜像,则必须从头开始构建新的OS。相反,Kubernetes Operators可以部署在现有的Kubernetes集群上,仅更改Kubernetes Operators打算更改的集群配置那一部分。
什么时候使用Helm图表和Kubernetes Operators?
什么时候应该使用Helm?什么时候使用Kubernetes Operators?其实答案取决于一下几个因素:
只是在安装应用程序吗?如果主要目标是部署应用程序,那么Helm可能是更好的解决方案。
多少定制化?如果你正在部署通用应用程序并且觉得默认设置还可以,那么Helm就足够了。但如果需要特殊配置,就可以使用Kubernetes Operators。
集群有多成熟?通常,当首次设置Kubernetes集群并想要部署应用程序时,Helm图表最有用。当集群已经启动并正在运行时,Kubernetes Operators会派上用场,来实现复杂的自定义配置或部署特殊的应用程序。
写在最后,所以对于大多数技术团队而言,使用Helm图表和Kubernetes Operators来实现不同的目标。它们是互补的,而不是竞争的关系。都有助于自动化Kubernetes工作流程,并与其他人共享Kubernetes应用程序和配置,并可以解决不同类型的用例。
领取专属 10元无门槛券
私享最新 技术干货