kubernetes 为什么节点不是命名空间的一部分?

sqxo8psd  于 2023-03-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(87)

我正在学习Kubernetes,我有一些疑问,我读到节点不能成为名称空间的一部分,如下所示。

$ kubectl api-resources 

NAME                              SHORTNAMES   APIGROUP     NAMESPACED   KIND
nodes                             no                         false        Node

上面提到POD可以是名称空间的一部分,但我的问题是,如果POD可以是名称空间的一部分,那么为什么Node不能?因为POD存在于Node内部?
在这方面的任何帮助都将是非常有帮助的。

hgc7kmma

hgc7kmma1#

名称空间实际上是您定义的,而您的Node和工作负载是实际运行的东西。

命名空间适用于具有分布在多个团队或项目中的许多用户的环境。对于具有几个到几十个用户的群集,您应该根本不需要创建或考虑命名空间。当您需要命名空间提供的功能时,请开始使用命名空间。
将名称空间视为您实际分配的标记,它在哪里运行并不重要。
节点是一个物理的东西,容器(POD)在它上面运行。

通过配置,您可以在特定节点上运行特定类型的POD(具有单一名称空间),但仍然需要创建额外的配置。
但这也是应用程序的设计内容,不管你想不想做。
例如,您创建了一个名称为Database并运行MySQL容器的名称空间。
运行WordPress容器的名称为Application的另一个命名空间。
两者可以在同一节点上运行。

xpszyzbs

xpszyzbs2#

我认为它更多的是一种设计选择,见:https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#not-all-objects-are-in-a-namespace
实际上,pod可以部署在任何节点上,如果节点可以分配到名称空间,这意味着调度程序只能调度共享相同名称空间的节点上的pod。

相关问题