应用高可用设计(nginx+k8s)
2022-11-08 18:52:22 1 举报
应用高可用设计、keepalived、k8s、微服务
作者其他创作
大纲/内容
元数据API服务
心跳检测
工作节点2
KeepAlived
...
ETCD
kubelet
文件存储服务
元数据服务
主(Master)
控制节点1
Feign
行为分析服务
数据看板服务
备(Slave)
ApiServer
控制节点和工作节点通讯通过vip对接
ControllerManager
客户端访问
kube-proxy
流量分析服务
Kubectl
系统管理服务
统一网关服务
工作节点1
北斗数据中台
控制节点2
OneID服务
Scheduler
埋点元数据服务
虚拟IP
控制节点3
XXX服务
Kubernetes作为容器集群系统,通过健康检查+重启策略实现了Pod故障自我修复能力,通过调度算法实现将Pod分布式部署,并保持预期副本数,根据Node失效状态自动在其他Node拉起Pod,实现了应用层的高可用性。针对Kubernetes集群本身,高可用性包括Etcd数据库的高可用性和控制节点(Master)的高可用性。Etcd采用3个节点组建集群实现了高可用;Master节点作为总控中心的角色,通过不断与工作节点上的Kubelet进行通信来维护整个集群的健康工作状态。如果Master节点故障,将无法使用kubectl工具或者API做任何集群管理。Master节点除了Etcd,主要还有三个服务ApiServer、ControllerManager和Scheduler,其中ControllerManager和Scheduler组件自身通过选择机制已经实现了高可用,所以Master高可用主要针对ApiServer组件,而该组件是以HTTP API提供服务,因此ApiServer高可用与nginx服务器类似,增加负载均衡器对其负载均衡即可,并且可水平扩容。
收藏
收藏
0 条评论
下一页