我试图弄清楚如何为开发集群组织K8s命名空间。
现在我们有多个开发名称空间(每个团队)。
在一个命名空间中有成千上万个豆荚(大约100-200个)。
每个功能分支部署1-5个Pod。
我们使用Helm进行部署。但是有些队友说很难管理。
新想法是在每个功能分支部署中创建一个名称空间。
现在,我看到的主要问题是在TLS(和其他)机密之间进行命名空间同步共享。但是可以通过制作CronJob来解决。
此方法是否有优点或缺点?
答案 0 :(得分:2)
使用名称空间将部署限制在功能团队中绝对是一种好方法。
但是按名称空间部署50个以上的pod变得困难,尤其是如果pod包含10个以上的conatiner。因此,您倾向于每个部署团队管理50X10 = 500个容器。
每个功能分支部署1-5个Pod。
这确实是使用命名空间的一种好方法,但是当您最初说您拥有100-200个Pod时,您仍然需要记住很多命名空间。
希望您在k8s中使用rbac
答案 1 :(得分:0)
每个(审阅)功能分支的命名空间是必经之路。
隔离每个部署组使其易于管理...
此外,如果您使用kubernetes仪表板,则名称空间概述会更有意义。
默认情况下,同步机密和configMap的想法非常有用,如果您确实重用了所有这些,并且它们从来都不是特定于名称空间的。
创建名称空间时动态地生成秘密和configMap,然后在该名称空间中添加它们并在那里不同步是另一种方法。
秘密和configMap是孤立的,特定于名称空间的原因并驻留在特定名称空间中是有原因的。 秘密和configMaps只能由位于相同名称空间中的pod引用。
仅仅因为您可以同步并不意味着您应该...
如果您仍然坚持同步,那么请拥有一组“ syncable-shared-secrets-secrets”,以及另一组特定于名称空间的组。
https://kubernetes.io/docs/concepts/configuration/secret/#restrictions
https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#restrictions