我们有一个客户,该客户在不同位置和不同网络子网中拥有 3 个节点。他们希望使用我们的产品和 HA 模式。我们告诉他们,要在 HA 模式下运行我们的产品,我们需要使用外部负载平衡器,或者他们需要使用 VXLAN 等技术将所有节点放在同一个子网中。
Kubernetes 对 HA 环境的建议是使用外部负载均衡器或 keepalived 和 haproxy 对作为裸机解决方案。
但他们全部否认了。所以我的老板告诉我要为这种情况找到一个平均解决方案。所以我找到了一个解决方案,但我需要知道瓶颈、缺点或可能的错误。这是我的解决方案:
# My nodes:
Node-1 192.168.10.100/24 <---- This is my initial master
Node-2 192.168.20.100/24
Node-3 192.168.30.100/24
- 我将
192.168.10.100 kubernetes.company.internal
记录添加到/etc/hosts
所有主节点上的文件中 - 使用以下命令在初始主服务器上初始化集群:
kubeadm init --upload-certs --control-plane-endpoint kubernetes.company.internal:6443 --pod-network-cidr 172.244.0.0/16
- 然后将另外 2 个节点作为主节点加入集群
- 在其他 2 个节点成功加入集群后,我修改了文件内的记录
/etc/hosts
,将其指向节点自己的 IP 地址。然后我重新启动了节点 - 我从主节点中删除了除初始节点之外的其他污点,以便 k8s 在这些节点上安排工作负载
完成此操作后,我执行了一系列 HA 测试,所有测试似乎都成功了。我确认他们不打算将更多节点作为工作节点添加到集群中。如果一个节点发生故障,所有机器都能够运行更多工作负载。
我的问题是这种设置的瓶颈、缺点或可能的错误是什么?