为什么需要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来自动执行其他任务,例如执行备份或基于预定义模板以特殊方式配置集群。