如何有效判断 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 个不同的集群:
etcd 集群:CoreOS 建议在一个集群中 运行 3、5 或 7 个 etcd 实例 (https://coreos.com/etcd/docs/latest/admin_guide.html#cluster-management). On the remaining nodes you can configure etcd to run as a proxy (https://coreos.com/etcd/docs/latest/proxy.html)。这应该可以解决您的 etcd 连接问题。
kubernetes 集群:这里通常有 运行 1 个主节点和 x "worker" 个节点,就像您已经做的那样。
我正在编写一些自动化程序来设置 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 个不同的集群:
etcd 集群:CoreOS 建议在一个集群中 运行 3、5 或 7 个 etcd 实例 (https://coreos.com/etcd/docs/latest/admin_guide.html#cluster-management). On the remaining nodes you can configure etcd to run as a proxy (https://coreos.com/etcd/docs/latest/proxy.html)。这应该可以解决您的 etcd 连接问题。
kubernetes 集群:这里通常有 运行 1 个主节点和 x "worker" 个节点,就像您已经做的那样。