Kubernetes架构具备高可用:一方面Master节点高可用;另一方面所部署的业务也是高可用的 。 系统高可用的核心在于冗余部署 , 当某一个节点或程序出现异常时 , 其他节点或程序能分担或替换工作 。 Master节点高可用 , 主要由以下几个方面的设计实现:
- Master由多台服务器构成 。
- API Server多实例同时工作 , 负载均衡 。
- etcd多节点 , 一主多从 。
- controller-manager与scheduler抢主实现 。
- kubelet:负责Pod对应容器的创建、启停等任务 , 是部署在Node上的一个agent 。
- kube-proxy:实现Service通信与负载均衡机制 。
- 容器运行时(如Docker):负责本机的容器创建和管理 。
- API Server中心枢纽
如下所示 , 各组件与API Server通信时 , 采用List-Watch机制 , 通过API server获取etcd配置与状态信息 , 进而触发行为 。 以下图为例是kubectl创建一个deployment时 , 各个组件与API Server的流程交互 。
Api Server的作用:
- 集群控制、访问的唯一入口 , 统一的认证、流量控制、鉴权等 。
- ectd数据的缓存层 , 请求不会轻易穿透到etcd 。
- 集群中各个模块的中心枢纽 , 各个模块之间解耦 。
- 便于模块插件的扩展(其他模块List、Watch、Update ApiServer即可实现扩展功能) 。
- 编排抽象 。 容器平台核心点不在于创建和调度容器 , 而是在上层架构抽象出各种对象 , 便于去统一管理 。 Kubernetes创造性的抽象出了各个编排的关系 , 例如亲密关系(Pod对象)、访问关系(Service对象)等 。
- 声明式API 。 声明式API是整个系统自动化的核心要点 , kubernetes提供了以声明式API的方式将抽象对外暴露 , 同时也便于了用户管理对象 。
- 开放插件 。 支持系统资源插件化(比如计算、存储、网络);同时也支持用户自定义CRD和开发Operator 。
- Pod对象
- 罗永浩|MIUI 14“剃刀计划”砍向应用臃肿:微信文件重复存储问题终于解决
- Java|24位博主,带你了解自媒体的真相
- 华为|不同职业的人怎么选华为PC?带你对号入座
- tiktok|新东方、罗永浩纷纷入局,TikTok海外发展势头走高,值得注意哪些趋势?
- 骨传导耳机|骨传导耳机伤耳朵吗?带你一分钟了解骨传导耳机
- 华硕|双12大促来了!带你种草全新华为“书房三宝”
- 罗永浩|现阶段物联网还无法建构在不同系统之间
- 短视频|【海归求职网CareerGlobal】13年500强企业工作经验资深行业顾问带你深入了解产品经理岗位!
- 燃气热水器|双增压零冷水,这冬天云米AI燃气热水器Super带你酣畅淋漓地洗澡
- 苹果|Apple Music新功能来袭 带你了解卡拉OK伴唱
