我需要将多个容器部署到 Kubernetes 集群。目标是自动化 Kafka、Kafka Connect、PostgreSQL 等的部署。其中一些已经提供了我们可以使用的 Helm 操作符。所以我的问题是,我们能否以某种方式在操作员内部使用这些 helm 操作员?如果是这样,最好的方法是什么?
到目前为止,我能想到的唯一方法是从部署应用程序中调用 helm setup 控制台命令。另一种方法,不使用这些 helm 文件,将在我自己的 operator 中实现每个 operator 的功能,这似乎没有多大意义,因为我需要的东西已经开发并且是公开的。
我对运营商开发很陌生,所以如果这是一个愚蠢的问题,请原谅。
编辑:运营商的主要目的是部署 X 数据库。除此之外,我们还希望有一个可以立即部署整个系统的操作员/捆绑包。即使我们对某些容器有额外的任务,使用操作符进行捆绑是否有意义?这样,用户将在 yaml 文件中指定:
databases
- type: "postgres"
name: "users"
- type: "postgres"
name: "purchases"
并且将创建 2 个 PostgreSQL 数据库。然后可以在其他 yaml 文件中或在同一个 yaml 文件中进一步提及这些数据库。手头案例:数据库中的信息将由 Debezium(另一个容器)提取,因此 Debezium 需要知道它们的地址。所以运营商应该创建一个服务并将服务地址与数据库名称相关联。
这是 ETL 系统的一部分。这个想法是操作员可以通过处理大部分配置来轻松部署整个系统。考虑到这一点,我们在考虑是否不可能选择现有的 Helm 操作员(或其他类型的操作员)并通过对配置进行少量修改(例如不同数据库的不同端口)来部署它们。
但是在阅读了F1ko的回复后,我获得了新的视角。也许这对于最初预期的操作员来说是不可能的?
Edit2:对edit1的澄清。