k8s master 实现高可用
创始人
2024-01-22 01:20:51
0

Kubernetes高可用master架构

k8s的高可用,主要是实现Master节点的高可用。那么我们看看各个组件是如何解决高可用的。

Kubelet、Kube-proxy:只工作在当前Node节点上,无需高可用。

etcd:etcd如果是放在集群内部的,在kubeadm1.5之后,对于多Master集群,一个Master节点加入集群后将自动实现集群化扩展。所以集群已经自动实现高可用,无需再人工干预。

kube-controller-manager:对于多Master集群,这个组件只会有一个正常工作,其它处于休眠挂起状态。当工作节点发生故障时才会唤醒另一个接管。所以集群已经自动实现高可用,无需再人工干预。

kube-scheduler:与kube-controller-manager情况一样,集群已经自动实现高可用,无需再人工干预。

kube-apiserver:每个Master节点的kube-apiserver都是独立的,没有竞争关系,访问哪个节点效果都是一样的。 综上所述,只有kube-apiserver需要人工解决。解决方案也很简单,既然APIServer以HTTP API提供接口服务,就可以使用常规的四层或七层的代理实现高可用和负载均衡,如使用Nigix、HAProxy等代理服务器。并且可以更进一步,使用vip和keepalive实现,代理服务器的高可用。然后将集群的访问地址从APIServer的地址改为vip的地址。

k8s的物理结构是master/node模式,架构图如下所示:

Kubernetes架构

master一般是三个节点或者五个节点做高可用,根据集群规模来定,master高可用指的是对apiserver做高可用或者对master的物理节点做高可用,node可以有多个节点,专门用来部署应用的。

k8s master使用keepalived生产环境下推荐使用高可用模式

登录k8s master1 master2,master3,分别修改/etc/keepalived/keepalived.conf,内容如下:

master-1:
global_defs {router_id master-1
}
vrrp_instance VI_1 {state MASTER interface ens160virtual_router_id 50priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.30.200}
}master-2:
global_defs {router_id master-2
}
vrrp_instance VI_1 {state BACKUP interface ens160virtual_router_id 50priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.30.200}
}master-3:
global_defs {router_id master-3
}
vrrp_instance VI_1 {state BACKUP interface ens160virtual_router_id 50priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.30.200}
}

以上需要注意的地方是192.168.30.200为虚拟IP,需要和集群处于同一个网段,且没有被配置为其它的物理机的IP,ens160为物理网卡的设备名称。

在三台master上执行以下命令启动keepalived

service keepalived start
systemctl enable keepalived

在master1上编辑初始化配置:keepalived的情况下controlPlaneEndpoint需要制定为虚拟IP地址

vi kubeadm.conf
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.23.6
imageRepository: registry.aliyuncs.com/google_containers 
controlPlaneEndpoint: 192.168.30.200:6443
networking:podSubnet: 10.244.0.0/16 serviceSubnet: 10.96.0.0/12 

启动初始化
kubeadm init --config kubeadm.conf

加入集群节点

节点加入集群有两种角色

1.control-plane角色 表示的是master的备用节点

2.worker角色 表示的是k8s的node

control-plane节点加入方式

登录master-2和master-3,让它们以control-node的方式加入
kubeadm join 192.168.30.200:6443 --token g55zwf.wu671xiryl2c0k7z --discovery-token-ca-cert-hash sha256:2b6c285bdd34cc5814329d5ba8cec3302d53aa925430330fb35c174565f05ad0 --control-plane

把master-1节点上的/root/.kube/下的所有文件拷贝到master-2和master-3节点的/root/.kube目录下,方便master-2和master-3也可以执行kubectl指令

worker节点加入方式

kubeadm join 192.168.30.99:6443 --token g55zwf.wu671xiryl2c0k7z --discovery-token-ca-cert-hash sha256:2b6c285bdd34cc5814329d5ba8cec3302d53aa925430330fb35c174565f05ad0

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...