每个功能分支部署的新K8s命名空间是一个很好的做法吗?

问题描述 投票:1回答:2

我正在试图弄清楚如何为开发集群组织K8s命名空间。

现在我们有多个开发命名空间(每个团队)。

单个命名空间中有大量的pod(大约100-200个)。

每个功能分支部署1-5个pod。

我们使用Helm进行部署。但是一些队友说很难管理它。

新想法是为每个功能分支部署创建命名空间。

现在,我看到主要问题是TLS(和其他)秘密在命名空间之间进行同步共享。但它可以通过制作CronJob来解决。

这种方法有什么优点或缺点吗?

kubernetes namespaces kubernetes-helm
2个回答
2
投票

它绝对是使用命名空间来限制部署到功能团队的好方法。 但是,每个命名空间部署50个以上的pod变得很难,尤其是当pod包含10个以上的conatiner时。因此,您将倾向于为每个部署团队管理50X10 = 500个容器。

每个功能分支部署1-5个pod。

这真的是一个使用命名空间的好方法,但是当你最初说你有大约100-200个pod时,你仍然会记住很多很多的命名空间。

希望你在k8s中使用rbac


0
投票

命名空间per(review)feature-branch是要走的路。

隔离每个部署组使其易于管理......

此外,如果您使用kubernetes仪表板,命名空间概述将更有意义。

默认情况下同步秘密和configMaps的想法是很好的,如果你真的重复使用每一个和所有这些,并且它们永远不会真正特定于命名空间。

在命名空间创建时动态生成秘密和configMaps,然后为那个命名空间添加它们而不是同步是另一种方法。

秘密和configMaps是隔离的,特定于命名空间的并且驻留在特定命名空间中是有原因的。 Secrets和configMaps只能由驻留在同一名称空间中的pod引用。

仅仅因为你可以同步并不意味着你应该......

如果你仍然坚持同步,那么有一组'syncable-shared-secrets',另一组是名称空间特定的。

https://kubernetes.io/docs/concepts/configuration/secret/#restrictions

https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#restrictions

© www.soinside.com 2019 - 2024. All rights reserved.