如何有效判断 Minion 是否加入了 Kubernetes 集群

How to determine efficiently if a Minion has joined a Kubernetes Cluster

我正在编写一些自动化程序来设置 Kubernetes 集群。自动化部署 Kubernetes Master,一旦设置完成,它就会开始并行添加 Minion。以编程方式确定 Minion 是否已加入 Kubernetes 集群的最有效 方法是什么?

目前我正在查询由 Kubernetes API-Server 公开的 REST 端点 /v1/api/nodes。我担心的是,随着集群规模的增加,查询 API-Server 以提取所有 minions 的详细信息可能是 API-Server 的计算和 I/O 密集型。我也没有在这个 API.

中找到分页支持

谢谢, 苏菲安

您应该查看 kube-register https://github.com/kelseyhightower/kube-register。它使用 fleet 在 minions 旋转时注册它们。您可能应该将它作为一个 systemd 单元,以便它在启动时运行。然后对于状态,让 Api-server 处理轮询状态。大多数集群可能不会超过 9 个主节点(你可以有很多工作节点,我建议查看 coreos 的 etcd 文档以了解集群),因为 etcd 在 RAFT 上的法定人数中的延迟限制,所以我也不会担心关于集群的大小。

这是答案和对另一个答案的评论的混合体(我还不能评论,抱歉...)

据我所知,使用 REST 端点 /v1/api/nodes 是检查节点是否已注册的最佳方式。您多久调用一次该端点?我不希望计算或 I/O 问题太快。

kube-register 是将新的 CoreOS 节点注册到 kubernetes 集群的有用工具,但现在不再需要它了,因为 kubelet 会同时注册自己。

我觉得对方的回答有些误会。我认为您谈论的是 2 个不同的集群: