Skip to main content
Version: v0.6.0

YurtControllerManager

1.功能简介​

Yurt Controller Manager 作为 kube-controller-manager 的扩展,支持了其他组件的正常运行以及边缘自治功能的实现。

1.1 接管节点的生命周期​

在原生的 Kubernetes 集群中,会驱逐状态为 NotReady 以及 Unknown 节点上的 Pod,对 Pod 进行重新调度以及重建。

在边缘场景中,云边网络异常经常发生,边缘节点可能经常离线,这导致边缘业务频繁驱逐和重建。针对这种情况,OpenYurt 提供了节点自治的能力, 对于开启了节点自治的边缘节点,云端管控面不对该节点上的 Pod 进行驱逐,确保了工作负载不被中断。

在实现上,Yurt Controller Manager 接管了 kube-controller-manager 中 nodelifecycle 控制器的工作,不断监听集群中节点的状态, 对于状态为 NotReady 以及 Unknown 的节点,如果节点开启了自治功能,通过移除节点 "node.kubernetes.io/unschedulable" 污点的方式确保节点上的 Pod 不被驱逐。

注意:安装 Yurt Controller Manager 时,需要关闭 kube-controller-manager 中的 nodelifecycle 控制器。

1.2 组件证书批准​

OpenYurt 中组件 Yurttunnel Server 以及 Yurthub 需要作为服务端分别向 Yurttunnel Agent、节点上的 Pod 提供服务。 由于原生的 Kubernetes 对服务证书的申请有严格要求,无法自动批准 Yurttunnel Server 以及 Yurthub 服务端的证书, 所以 Yurt Controller Manager 承担了这份工作——批准 Yurttunnel Server 以及 Yurthub 服务端证书的申请。