实验环境

原理

生成kube-vip静态pod配置清单

export VIP=192.168.215.200 # 我的vip是192.168.215.200
export INTERFACE=ens33 #可以用 ip a 查看接口名称
# kube-vip最新镜像为v0.8.0,但我装时无法成功,后来降到v0.7.2后安装成功了
ctr image pull docker.io/plndr/kube-vip:v0.7.2
ctr run --rm --net-host docker.io/plndr/kube-vip:v0.7.2 vip \ 
/kube-vip manifest pod \
--interface $INTERFACE \
--vip $VIP \
--controlplane \
--services \
--arp \
--leaderElection | tee  /etc/kubernetes/manifests/kube-vip.yaml

将kube-vip.yaml复制到另外两台控制平面节点的/etc/kubernetes/manifests/目录

使用kubeadm初始化master节点的集群

kubeadm init --control-plane-endpoint="192.168.215.200" --kubernetes-version=v1.28.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --image-repository=registry.aliyuncs.com/google_containers --upload-certs

--control-plane-endpoint填vip地址

使用kubeadm join命令加入另外两台控制平面的节点

验证

三个kube-vip静态pod都成功运行

使用ip a查看vip地址

关闭vip所在主机,vip会飘移都另外一台主机上,集群仍保存正常运行

爬坑记录

我用kube-vip:v0.8.0装了好几天都没装成功,后来换了kube-vip:v0.7.2就装成功了

控制平面节点最少要3台,两台不行,vip不会飘移

问题

当我关闭vip所在主机后,原vip所在主机的所有pod仍显示为running,不知道为何

参考文章


吴晓阳
1 声望0 粉丝