Kubernetes - 节点
节点是 Kubernetes 集群中的工作机器,也称为 minion。它们是工作单元,可以是物理机、VM 或云实例。
每个节点都具有运行 pod 所需的所有配置,例如 proxy service 和 kubelet service,以及用于在节点上创建的 pod 中运行 Docker container 的 Docker。
它们不是由 Kubernetes 创建的,而是由云服务提供商或 Kubernetes 集群管理器在物理机或 VM 上外部创建。
Kubernetes 处理多个节点的关键组件是 controller manager,它运行多种控制器来管理节点。为了管理节点,Kubernetes 会创建一个 kind 为 node 的对象,以验证创建的对象是一个有效的节点。
带 Selector 的 Service
apiVersion: v1
kind: node
metadata:
name: < ip address of the node>
labels:
name: <lable name>
以 JSON 格式创建的实际对象如下所示 −
{
Kind: node
apiVersion: v1
"metadata":
{
"name": "10.01.1.10",
"labels"
{
"name": "cluster 1 node"
}
}
}
Node Controller
它们是运行在 Kubernetes master 中的服务集合,会根据 metadata.name 持续监控集群中的节点。如果所有必需的服务都在运行,则节点被验证有效,controller 会将新创建的 pod 分配到该节点。如果无效,则 master 不会向其分配任何 pod,并会等待它变为有效。
Kubernetes master 会自动注册节点,如果 register-node 标志为 true。
register-node = true
然而,如果集群管理员希望手动管理,则可以通过将标志设置为以下值来实现 −
register-node = false