我们有一个多租户 kubernetes 集群,托管各种客户环境。Kubernetes 命名空间用于隔离这些客户环境。这些命名空间中的每一个都配置了一组类似的 k8s 资源(部署、配置映射等)。其中一些资源在命名空间中是相同的,而另一些则不相同。
从持续交付的角度来看,我正在探索以无缝方式对这些相同组件(跨命名空间)进行更改的选项。Git-Ops/Pull-based-Continuous-Delivery 似乎是一种很好的方法,它可以让我们无缝地管理各种集群中的 100 个命名空间。
探索了几个 Git-Ops 工具,例如 ArgoCD、Fluxv2 等……但无法弄清楚这些工具是否可以让您同时(或在可预测的时间窗口内)对多个命名空间进行更改。如果您可以指导/建议我选择正确的工具/方法来执行向多个命名空间的部署,这将很有帮助。了解这些 Git-Ops 工具是否可以定制以处理此类场景也将是一件好事。
说明如何在我们的 k8s 集群中设置命名空间。
Namespace: customer1
Deployments: app1, common-app, common-service
Configmaps: cm1, common-cm
Namespace: customer2
Deployments: app2, common-app, common-service
Configmaps: cm2, common-cm
common-app
, common-service
,common-cm
在环境/命名空间中是相同的。
app1
, cm1
, app2
,cm2
不相同。它们有不同的图像标签、标签等。