在没有故障切换/负载平衡器的情况下,Kubernetes是否可以使用kubeadm实现高可用性?

在没有故障切换/负载平衡器的情况下,Kubernetes是否可以使用kubeadm实现高可用性?,kubernetes,kubectl,kubeadm,Kubernetes,Kubectl,Kubeadm,我正在尝试使用kubeadm实现k8s的高可用性。我在看文件 在正式文件中,建议为kube APIS服务器配备故障切换机制/负载平衡器。我尝试了keepalived,但在aws/gcp Instances上进行设置时,由于不支持多播,因此我不允许使用它,因此它会导致大脑分裂。有什么办法可以解决这个问题吗?没有,您需要一个负载平衡器来使用kubeadm实现HA 如果使用AWS/GCP,为什么不考虑在这些环境中使用本地负载均衡器,比如ELB或谷歌云负载均衡器? < P>是一个容器编排系统,用于自动化

我正在尝试使用kubeadm实现k8s的高可用性。我在看文件


在正式文件中,建议为kube APIS服务器配备故障切换机制/负载平衡器。我尝试了keepalived,但在aws/gcp Instances上进行设置时,由于不支持多播,因此我不允许使用它,因此它会导致大脑分裂。有什么办法可以解决这个问题吗?

没有,您需要一个负载平衡器来使用kubeadm实现HA

如果使用AWS/GCP,为什么不考虑在这些环境中使用本地负载均衡器,比如ELB或谷歌云负载均衡器?

< P>是一个容器编排系统,用于自动化容器化应用程序的部署、缩放和管理。 Kubernetes在高可用性和负载平衡环境中发挥得最好

如前所述,云提供商为您提供了使用本机负载平衡器的可能性,我也建议您这样做 具有高可用性的良好磁极位置。您可能对文档感兴趣

Kubernetes自制环境中的Kubeadm需要一些额外的工作,从我的角度来看,这很好 设置,然后开始玩

好的,我假设安装的服务器已经准备好了。要创建一个不复杂的多主机群集安装,您需要3个主机节点(10.0.0.50-52)和负载平衡器(10.0.0.200)

生成令牌并将输出保存到文件:

kubeadm令牌生成

创建kubeadm配置文件:

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
etcd:
  endpoints:
  - "http://10.0.0.50:2379"
  - "http://10.0.0.51:2379"
  - "http://10.0.0.52:2379"
apiServerExtraArgs:
  apiserver-count: "3"
apiServerCertSANs:
- "10.0.0.50"
- "10.0.0.51"
- "10.0.0.52"
- "10.0.0.200"
- "127.0.0.1"
token: "YOUR KUBEADM TOKEN"
tokenTTL: "0"
将配置文件复制到所有节点

在第一个主实例上执行初始化:

kubeadm init --config /path/to/config.yaml
新的主实例将拥有主集群所需的所有证书和密钥

将目录结构
/etc/kubernetes/pki
复制到同一位置的其他主机

在其他主服务器上:

kubeadm init --config /path/to/config.yaml
现在,让我们开始设置负载平衡器:

/etc/kubernetes/admin.conf
复制到
$HOME/.kube/config

接下来,编辑
$HOME/.config
并替换

服务器:10.0.0.50

服务器:10.0.0.200

检查节点是否工作正常:

kubectl获取节点

对所有工人执行:

kubeadm-join-标记您的集群\u-token 10.0.0.200:6443-发现标记ca证书哈希sha256:89870E4215B92262C5093B3F4F6D57BE8580C3442ED6C8B0B30822C41E5B3

就这样!如果一切都设置得很干净,那么您现在应该拥有一个高可用性集群


我发现本教程很有用,感谢您的启发。

您确实需要nginx/haproxy+keepalive以实现故障切换和高可用性