首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【云原生】K8S master节点更换IP以及master高可用故障模拟测试

一、前言

根据小伙伴提的问题,这里专门出一篇文章分析master节点挂了不可用的场景分析,希望这篇文章对小伙伴有用;其实VIP的方案实现高可用,还有更可靠的方案,也是我们目前生成环境在使用的高可用方案,后面也会分享出来,请小伙伴耐心等待~

二、配置 多个master 节点

1)节点信息

1)安装docker或containerd

2)安装kubeadm,kubelet和kubectl

1、配置k8s yum源

2、修改sandbox_image 镜像源

3、配置containerd cgroup 驱动程序systemd

kubernets自v1.24.0后,就不再使用docker.shim,替换采用containerd作为容器运行时端点。因此需要安装containerd(在docker的基础下安装),上面安装docker的时候就自动安装了containerd了。这里的docker只是作为客户端而已。容器引擎还是。

4、开始安装kubeadm,kubelet和kubectl

5、master节点加入k8s集群

查看节点

三、更换 K8S master 节点 IP(master 高可用)

1)节点信息

2)master节点安装keepalived

1、安装 keepalived

2、配置 keepalived

3、启动并设置开机启动

3)配置hosts

4)修改配置

到K8S master节点目录下,我们主要修改,这两个配置文件。

5)生成新的admin用config文件

6)删除旧的证书,生成新证书

7)重启docker或者containerd,kubelet

8)查看ETCD

9)解决 node 节点 NotReady状态

1、从master节点拷贝ca.crt到node节点对应的目录

2、修改node节点的kubelet.conf

把修改为现在master节点的地址

3、重启docker或者containerd,kubelet

四、故障模式测试

1)模拟VIP漂移

查看节点信息

从上图可知VIP已经漂移到master backup1节点了,不影响集群,接下来恢复故障。

【结论】master节点故障恢复后,VIP会从新漂移回到原先的master节点。

查看节点信息

2)节点故障测试(一台master故障)

模拟master节点故障(手动关机)

【结论】一台master故障,不影响集群。

3)master节点故障模拟(两台master故障)

2、模拟master节点故障(手动关机)

【错误】

发现两个master节点,挂了一个master节点是不可用的。原因:当两个master节点还是需要2个节点可用。只有大于2个master节点才允许挂master节点,我们可以查一下允许的容器。会发现api-server的容器一直在重启或者直接挂了,小伙伴也可以去查看一下日志。stackoverflow答案

【建议】所以我们部署多master高可用节点数量必须大于等于3,这样才能保证挂一个master节点,集群不会受影响。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230315A000UX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券