概述
目前kubernetes高可用需要要么依赖外部负载均衡器,自己搭建时就需要做keepalived haproxy等,比较麻烦,在某些云上可能keepalived还无法使用,构建部署也需要通过ansible等去做HA,很多工具部署过程中都比较容易产生问题。
今天把我毕生精华拿出来分享给大家,绝逼是你见过最简单,最先进,国际领先的k8s HA方案,目测社区未来也会朝着这个方向发展。
地址sealos, 让kubernetes高可用不再需要keepalived haproxy和ansible,
sealyun定制超级版kubeadm通过ipvs代理多个master,优雅解决k8s高可用问题。
使用教程
环境介绍
10.103.97.200 | master0 |
10.103.97.201 | master0 |
10.103.97.202 | master0 |
10.103.97.2 | virtulIP |
apiserver.cluster.local | apiserver解析名 |
下载超级kubeadm
下载kubernetes1.14.0+离线包
在每个节点上初始化
用下载的kubeadm替换掉包内的kubeadm:
kubeadm配置文件
cat kubeadm-config.yaml :
在 master0 10.103.97.200 上
执行完会输出一些日志,里面包含join需要用的命令
在 master1 10.103.97.201 上
在 master2 10.103.97.202 上,同master1
在Node节点上
通过虚拟IP join到master上, 这个命令会在node节点上创建一条ipvs规则,virturl server就是虚拟IP, realserver就是三个master。 然后再以一个static pod起一个守护进程守护这些规则,一旦哪个apiserver不可访问了就清除realserver, apiserver通了之后再次添加回来
Architecture
集群每个node节点都会创建一条ipvs规则用于代理所有的master节点。类似kube-proxy的ipvs实现.
然后起一个守护进程就健康检查apiservers /etc/kubernetes/manifests/sealyun-lvscare.yaml
LVScare
关于ipvs的创建与守护可见这个项目。
本文分享自微信公众号 - sealyun(gh_f33fe7b0c869)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。