- scheduler 。 集群的调度器 , 它负责在Kubernetes集群中为Pod资源对象找到合适节点并使其在该节点上运行 。
- etcd 。 用于存储Kubernetes集群的数据与状态信息 。
- 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对象
Kubernetes抽象出一个Pod对象 , 是一组(一个或多个)容器 ,这些容器共享存储、网络等 ,这些容器是相对紧密的耦合在一起的 。 Pod是Kubernetes内创建和管理的最小可调度单元 , 调度过程是按Pod整体所需资源一起进行调度的 。 Pod本身只是逻辑上的概念 , 在容器管理这层并不认识Pod对象 。
Pod的实现需要使用一个中间容器(Infra容器) , 在这个Pod中 , Infra容器永远是第一个被创建的容器 , 用户定义的其他容器通过Join Network Namespace的方式与Infra容器关联在一起 。 抽象一个中间容器的原因在于各个业务容器是对等的 , 其启动没有严格的先后顺序 , 需借助中间容器实现共享网络和存储的目的 。
- 今日头条|高温烧烤模式下,Garmin Forerunner 955带你玩转夏季跑步
- kubernetes|100W+256GB,现已跌至“新低价”,华为拍照手机加速清仓
- kubernetes|能说会唱长续航,累计销量350W+?塞那X6S蓝牙小音箱轻评
- 酷派|千元高品质,5G好声音,酷派COOL 20s 5G带你纵享快乐
- 全球财经网|详解ZStack Cloud 4.4.6:API Inspector带你轻松玩转ZStack Cloud API
- ios15|618一线品牌游戏本该怎么选?干货文带你看懂它们的优缺点汇总
- |图文并茂,教你如何设计10/0.4kV变电所的接地,通俗易懂
- 全球财经网|直击2022西部数博会丨相芯科技带你了解数字人技术
- 耳机|音效纯正的有线耳机,优越动圈工艺,好耳机带你低音感受低音波澜
- CPU|起飞!16核i9 12950HX带你“俯瞰众生”