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

【云原生】无VIP稳定性和可扩展性更强的k8s高可用方案讲解与实战操

一、概述

二、架构

三、开始部署

1)节点信息

2)前期准备(所有节点)

1、配置hosts

2、配置互信

3、时间同步

4、关闭防火墙

5、禁用SELinux

6、关闭swap

7、设置bridge-nf-call-iptables

3)安装容器docker(所有节点)

4)配置k8s yum源(所有节点)

5)开始安装kubeadm,kubelet和kubectl(所有节点)

6)使用 kubeadm 初始化集群(第一个master节点)

最好提前把镜像下载好,这样安装快

集群初始化

查看节点信息

发现节点是NotReady状态,查看日志是因为没有装CNI网络插件,接下来就开始安装Calico 网络插件,当然也可以选择其它网络插件。

7)安装Calico网络插件

8)配置IPVS(所有节点)

1、加载ip_vs相关内核模块

所有节点验证开启了ipvs:

2、安装ipvsadm工具

3、编辑kube-proxy配置文件,mode修改成ipvs

4、重启kube-proxy

9)master节点加入集群

【问题】

【解决】添加如下配置:

开始执行下面的命令将master节点加入集群

等网络插件自动安装完后,再查看节点状态

10)修改master节点指向自己apiserver

1、修改配置

2、删除旧的证书,生成新证书

3、修改apiserver

4、修改kube-prxoy配置

重启

5、重启docker和kubelet

11)node节点上安装nginx

这里使用nginx四层代理

配置nginx,在nginx.conf添加如下配置:

12)node节点加入集群

修改配置

重启

等网络插件自动安装完后,再查看节点状态

13)卸载

四、高可用故障模式测试

1)master节点故障模拟(一个master故障)

【结论】如上图可知,挂一个master节点不影响集群。

2)master节点故障模拟(两个master故障)

【结论】如上图可知,挂两个master节点,整个集群不可用,还是之前说的,三个master节点只允许挂一个master节点,这里就不细说了,可以参考我之前的文章:【云原生】K8S master节点更换IP以及master高可用故障模拟测试

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券