配置您的 kubernetes 集群以自托管控制平台

自托管 Kubernetes 控制平台

kubeadm 允许您实验性地创建 self-hosted Kubernetes 控制平面。 这意味着 API 服务器,控制管理器和调度程序之类的关键组件将通过配置 Kubernetes API 以 DaemonSet pods 的身份运行,而不是通过静态文件将 static pods 在 kubelet 中配置。

要创建自托管集群,请参见 kubeadm alpha 自托管枢纽 命令。

警告

警告:

此功能将您的集群设置为不受支持的状态,从而使 kubeadm 无法再管理您的集群。 这包括 kubeadm 升级

  1. 1.8及更高版本中的自托管功能有一些重要限制。 特别是,自托管集群在没有人工干预的情况下无法从控制平面节点的重新启动中恢复

  2. 默认情况下,自托管的控制平面 Pod 依赖于从 hostPath 卷加载的凭据。 除初始创建外,这些凭据不由 kubeadm 管理。

  3. 控制平面的自托管部分不包括 etcd,后者仍作为静态 Pod 运行。

处理

自托管引导过程记录在 kubeadm 设计文档 中。

总而言之,kubeadm alpha 自托管 的工作原理如下:

  1. 等待此引导静态控制平面运行且良好。 这与没有自我托管的 kubeadm init 过程相同。 <!–
  2. Uses the static control plane Pod manifests to construct a set of DaemonSet manifests that will run the self-hosted control plane. It also modifies these manifests where necessary, for example adding new volumes for secrets. –>
  3. 使用静态控制平面 Pod 清单来构造一组 DaemonSet 清单,这些清单将运行自托管的控制平面。 它还会在必要时修改这些清单,例如添加新的秘密卷。

  4. kube-system 名称空间中创建 DaemonSets ,并等待生成的 Pod 运行。

  5. 自托管 Pod 运行后,将删除其关联的静态 Pod,然后 kubeadm 继续安装下一个组件。 这将触发 kubelet 停止那些静态 Pod 。

  6. 当原始静态控制平面停止时,新的自托管控制平面能够绑定到侦听端口并变为活动状态。