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对象
- 罗永浩|为何小商贩大多喜欢用微信支付,却很少使用支付宝?什么原因?
- 罗永浩|罗永浩称拿火烤钟薛高精神有问题:直击钟薛高卖得贵
- 罗永浩|罗永浩官宣新创业公司名字,看来锤子真的被放弃了!
- 罗永浩|罗永浩称不会再有“真还传2” 所有让写担保的都不签了
- 罗永浩|罗永浩称拿火烤钟薛高精神有问题:劝网友先看检测报告再黑
- “快来”为你解读视联网发展阶段之婴儿篇“快来直播”带你了解视联网发展阶段视联网的发展趋势...|“快来”为你解读视联网发展阶段之婴儿篇
- 罗永浩|罗永浩直播间拍蚊子为自己正名:让投资人放心
- 罗永浩|又一位互联网大佬宣布移居海外!!
- 锤子科技|和锤子科技说再见!罗永浩:新公司已经成立!
- 罗永浩|罗永浩谈钟薛高卖得贵:品质碾压哈根达斯 还没它贵!