您的位置:首页 > 其它

Kubernetes核心原理简单总结(一)

2017-08-14 23:24 281 查看
1、kubernetes APIserver

1)提供了集群管理的API接口

2)是集群内各个功能模块之间数据交互和通信的中心枢纽

3)拥有完备的集群安全机制

API通过 apiserver进程提供服务,该进程在master节点上。该进程包括两个端口:本地端口,默认是8080端口和安全端口,默认6443端口;集群内的功能模块通过API
server将信息存入Etcd,其他模块通过API server读取这些信息,从而实现模块间的通信。

2、Controller Manager(控制器)

Controller Manager是集群内部的控制管理中心,负责集群内Node、pod副本、服务端点、命名空间、服务账号、资源定额等的管理并执行自动化修复流程。

内部包含:

1)Replication Controller:作用是确保任何时候集群中一个资源对象(RC)所关联的Pod都保持一定数量的Pod副本处于正常运行状态。

2)Node controller:负责发现、管理和监控集群中的各个 Node节点。

3)ResourceQuota Controller:提供资源配额管理;

4)Namespace Controller:定时读取Namespace信息,进行修改删除;

5)ServiceAccount Controller和Tocken Controller:与安全相关的控制器;

6)Service Controller:监控Service的变化。

7)Endpoints Controller:通过Store来缓存Service和pod信息,监控Service和Pod的变化。

3、Kubernetes Scheduler(调度模块)

Kubernetes scheduler 负责Pod调度的重要功能模块,负责接收Controller Mannager调度的pod
(创建的新Pod)按照特定的调度算法策略绑定的集群中合适的Node上,并将绑定信息写入Etcd中。

默认的调度流程:

1)预选调度过程,遍历所有的Node节点,筛选出符合要求的候选节点(内置了多种筛选策略);

2)确定最优节点,在第一步的基础上采用优先策略计算每个候选节点的积分,积分高的胜出。

4、Kubelet

该进程处理Master节点上下发到本节点的任务,管理Pod及pod中的容器。每个Kubelet都会在API
server上注册节点自身的信息,定期向MAster节点汇报节点资源的使用情况。Node节点上的Kubelet通过API-server监听到Kubernetes
Scheduler产生的Pod绑定事件,然后获取pod清单,下载镜像,并启动容器。

5、Kube-proxy(代理)

Kube-proxy充当kubernetes中Service的负载均衡器和服务代理的角色。service是一组pod的服务抽象,相当于一组pod的LB,负责将请求分发给对应的pod。service会为这个LB提供一个IP,一般称为cluster
IP。kube-proxy的作用主要是负责service的实现,具体来说,就是实现了内部从pod到service和外部的从node
port向service的访问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  kubernetes