Kubernetes集群架构-节点

Kubernetes 集群架构 - 节点

Kubernetes 通过将容器打包到 Pods 中以在节点上运行用户工作负载。根据不同的集群,节点可以是虚拟机或者物理机。所有节点都由控制平面进行管理,节点上包含运行 Pod 所必需的所有服务。

一般情况下,集群中包含多个节点,但在学习或者资源受限的情况下,一个集群可能只有一个节点。

节点上的组件包括 kubelete、容器运行时和 kube-proxy。

管理

有两种主要方法可以将节点添加到 API 服务中:

  1. 部署在节点上的 kubelet 组件自注册到控制平面
  2. 人工手动添加节点对象

在手动或者 kubelet 自动注册节点后,控制平面会检查新的节点对象是否有效。比如,考虑尝试使用如下的 JSON manifest 创建节点:

{
   
   
  "kind": "Node",
  "apiVersion": "v1",
  "metadata": {
   
   
    "name": "10.240.79.157",
    "labels": {
   
   
      "name": "my-first-k8s-node"
    }
  }
}

Kubernetes 会在内部创建一个 Node 对象用来表示节点,同时Kubernetes 还会检查 kubelet 是否已经注册到与 Node 的 metadata.name 字段相匹配的 API 服务。如果节点的运行状态良好(即所有必要的服务都处于运行状态),则允许在它上面运行 Pod,否则,直到它变得正常之前,所有集群活动都会忽略该节点。

Kubernetes 会保留无效的 Node 对象,并持续检查它的健康状态。

只有通过手动或者控制器来明确删除 Node 对象,才能停止对该对象的健康检查。

Node 对象的名称必须是有效的 DNS 子域名

节点名称唯一性

Kubernetes 使用名称来标识节点对象,两个节点不能同时拥有相同的名称,Kubernetes 假设具有相同名称的资源是相同的对象。对于节点来说,系统默认使用相同名称的实例拥有相同的状态(例如网络设置、根磁盘内容)和属性(如节点标签)。如果在没有更改节点名称的情况下修改了实例,可能会带来一致性问题。如果需要对节点进行大量替换或更新,则需要先将现有的节点对象从 API 服务中删除,更新后再重新添加。

节点自注册

当 kubelet 的标志符号 --register-node 为 true(默认值)时,kubelet 会尝试向 API 服务注册自身。这是大多数发行版使用的首选模式。

对于自注册,kubelet 可以使用以下的选项启动:

  • --kubeconfig - 用于向 API 服务器验证自身身份的凭证路径。
  • --cloud-provider - 如何与云供应商交互以读取有关自身的元数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值