三.Kubernetes实践指南--Kubernetes核心原理
2019-12-05 本文已影响0人
何何与呵呵呵
Kubernetes API Server原理
1.通过API Server可以返回集群的Pod列表,Service列表,RC列表
2.Kubernetes Proxy API
通过REST请求转发到某个Node上,里面有关于Node,Pod与Service的API接口
Kubernetes结构图
为了缓解各模块对API Server的访问压力,各功能模块都采用缓存机制来缓存数据.各功能模块定时从API Server获取指定的资源对象信息(LIST或者WATCH方法),然后将信息保存到本地
Controller Manager原理分析
Controller Manager负责集群内的Node,Pod副本,服务端点(endpoint),nameSpace,服务账号(ServiceAccount),资源定额(ResourceQuota)等的管理.
Controller Manager结构图
- Replication Controller 副本控制器,保证RC(资源对象)关联的Pod副本数量保持预设值,注意,需要将重启策略设置为Always.
- Node Controller 管理和监控集群的各个Node节点的相关控制功能
Node Controller流程图
- ResourceQuota Controller 确保对指定资源(容器,PodNameSpace)在任何时候都不会超量占用系统物力资源.
ResourceQuota Controller流程图
- NameSpace Controller
- Service Controller与Endpoint Controller
Service Pod endpoint的关系
Scheduler原理分析
接受Controller Manager创建的新的Pod,为其安排一个Node.
Scheduler流程
kubelet运行机制分析
在每个node节点上都启动一个kubelet服务进程,用于处理Master节点下发到本节点的任务,并定时向Master节点汇报节点资源的使用情况(默认十秒).
- 节点管理 "--register-node=true"
- Pod管理 Pod信息告知Api Server并保存到etcd数据库.Pod先创建pause容器,再创建其他容器.
- 容器健康检查
1.LivenessProbe
2.ReadinessProbe - cAdvisor资源监控
kube-proxy运行机制分析
Service的负载均衡转发规则
- 路由选择取决于Robin的负载均衡及Service的Session会话保持(SessionAffinity)
- Service发生变化,若果没有设置集群IP,不作处理,否则获取改Service的所有端口.逐个读取服务端口定义列表信息,判断是否已经有对应的代理对象,不存在则创建,更新负载均衡组件对应的转发地址表.
kube-proxy工作示意图
深入分析集群安全机制
- API Server认证
- API Server授权
- Admission Control准入控制
- Service Account(Pod进程使用)
网络原理
- Kubernetes网络模型(以Pod为单位进行IP分配)
- Docker的网络基础
Docker使用到的linux网络相关技术
- Kubernetes的网络实现
通信类型