我正在学习Kubernetes,我有一些疑问,我读到节点不能成为名称空间的一部分,如下所示。
$ kubectl api-resources
NAME SHORTNAMES APIGROUP NAMESPACED KIND
nodes no false Node
上面提到POD可以是名称空间的一部分,但我的问题是,如果POD可以是名称空间的一部分,那么为什么Node不能?因为POD存在于Node内部?
在这方面的任何帮助都将是非常有帮助的。
2条答案
按热度按时间hgc7kmma1#
名称空间实际上是您定义的,而您的Node和工作负载是实际运行的东西。
命名空间适用于具有分布在多个团队或项目中的许多用户的环境。对于具有几个到几十个用户的群集,您应该根本不需要创建或考虑命名空间。当您需要命名空间提供的功能时,请开始使用命名空间。
将名称空间视为您实际分配的标记,它在哪里运行并不重要。
节点是一个物理的东西,容器(POD)在它上面运行。
注:
通过配置,您可以在特定节点上运行特定类型的POD(具有单一名称空间),但仍然需要创建额外的配置。
但这也是应用程序的设计内容,不管你想不想做。
例如,您创建了一个名称为
Database
并运行MySQL容器的名称空间。运行
WordPress
容器的名称为Application
的另一个命名空间。两者可以在同一节点上运行。
xpszyzbs2#
我认为它更多的是一种设计选择,见:https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#not-all-objects-are-in-a-namespace
实际上,pod可以部署在任何节点上,如果节点可以分配到名称空间,这意味着调度程序只能调度共享相同名称空间的节点上的pod。