我已经在虚拟机器中启动了一个k8s集群(kubernetes的方式很难),它有2个主服务器和2个工人服务器,还有1个LB用于2个主服务器的kube-apiserver。顺便说一句,kubelet没有在master中运行,仅在worker节点中运行。现在集群已经启动并运行了,但是我不能理解master上的kube-apiserver是如何连接到kubelet来获取节点的度量数据的,等等。你能让我详细了解一下吗?
发布于 2019-12-30 15:03:35
Kubernetes API服务器不知道Kubelets,但Kubelets知道Kubernetes API服务器。Kubelet注册节点并将指标报告给Kubernetes API Server,该服务器将持久化到ETCD键值存储中。Kubelets使用kubeconfig文件与Kubernetes API Server通信。这个kubeconfig文件具有Kubernetes API server.The的端点,Kubelet和Kubernetes API Server之间的通信通过相互的TLS是安全的。
在Kubernetes中,Kubernetes控制平面组件- API服务器、调度器、控制器管理器作为系统单元运行,这就是为什么没有Kubelet在控制平面节点上运行,如果您执行kubectl get nodes
命令,您将不会看到列出的主节点,因为没有Kubelet来注册主节点。
部署Kubernetes控制平面组件的更标准方法是使用Kubelet而不是systemd单元,这就是Kubeadm部署Kubernetes控制平面的方式。
有关Master to Cluster通信的官方文档。
https://stackoverflow.com/questions/59532747
复制相似问题