首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用kubeadm的Kubernetes高可用性可以在没有故障转移/负载均衡器的情况下实现吗?

使用kubeadm的Kubernetes高可用性可以在没有故障转移/负载均衡器的情况下实现吗?
EN

Stack Overflow用户
提问于 2018-07-09 20:50:52
回答 3查看 1.2K关注 0票数 0

我正在尝试使用kubeadm实现k8s的高可用性。我正在遵循文档k8s HA using kubeadm

在官方文档中,建议kube-apiserver有故障转移机制/负载均衡。我尝试过keepalived,但是,在设置aws/gcp实例的情况下,它陷入了分裂的情况,因为不支持多播,所以我不允许使用它。有什么办法解决这个问题吗?

EN

回答 3

Stack Overflow用户

发布于 2018-07-11 01:48:18

Kubernetes是一个容器编排系统,用于自动部署、扩展和管理容器化应用程序。Kubernetes在高可用性和负载均衡环境中表现最佳。

正如@jaxxstorm提到的,云提供商为您提供了使用原生负载均衡器的可能性,我还建议您使用高可用性尝试的一个很好的位置。您可能会对GCP文档感兴趣。

Kubeadm在Kubernetes自制环境上需要一些额外的工作,从我的角度来看,设置Kubernetes The Hardway然后开始使用Kubeadm是很好的。

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

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

kubeadm token generate

创建kubeadm配置文件:

代码语言:javascript
复制
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"

将配置文件复制到所有节点。

对第一个主实例进行初始化:

代码语言:javascript
复制
kubeadm init --config /path/to/config.yaml

新的主实例将拥有我们的主集群所需的所有证书和密钥。

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

在其他主服务器上:

代码语言:javascript
复制
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 get nodes

在所有工作进程上执行:

kubeadm join --token YOUR_CLUSTER_TOKEN 10.0.0.200:6443 --discovery-token-ca-cert-hash sha256:89870e4215b92262c5093b3f4f6d57be8580c3442ed6c8b00b0b30822c41e5b3

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

我发现"HA Kubernetes cluster via Kubeadm"教程很有用,谢谢@Nate Baker的启发。

票数 1
EN

Stack Overflow用户

发布于 2018-07-10 02:16:30

不,您需要一个负载均衡器才能将HA与kubeadm配合使用。

如果您正在使用AWS/GCP,为什么不考虑在这些环境中使用本地负载均衡器,比如ELB或Google Cloud Load Balancer?

票数 0
EN

Stack Overflow用户

发布于 2019-02-06 20:05:14

您绝对需要nginx/haproxy + keepalived来实现故障切换和高可用性

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51246036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档