K8S组件功能介绍

Master:

etcd分布式键值存储系统。用于保存集群状态,比如Pod、Service等对象信息
kube-controller-manager 负责维护集群状态如故障检测,自动更新处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。
kube-scheduler 负责资源调度根据调度算法为新创建的Pod选择一个Node节点
kube-apiserver Kubernetes API,集群的统一入口,各组件协调者,以HTTPAPI提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。

Node:

Kubelet kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期也负责volueme和网络的管理,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。kubelet将每个Pod转换成一组容器(CSI 存储CNI网络管理)
kube-proxy 在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。

其他:
Pod:Pod是最小部署单元,一个Pod由一个或多个容器组成,Pod中容器共享存储和网络,在同一台Docker主机上运行
Service : Service一个应用服务抽象,定义了Pod逻辑集合和访问这个Pod集合的策略
Service代理Pod集合对外表现是为一个访问入口,分配一个集群IP地址,来自这个IP的请求将负载均衡转发后端Pod中的容器
在K8s集群中,客户端需要访问的服务就是Service对象。每个Service会对应一个集群内部有效的虚拟IP,集群内部通过虚拟IP访问一个服务
Volume : 数据卷,是Pod中能够被多个容器访问的共享目录。定义在Pod之上,被一个Pod里的多个容器挂载到具体的文件目录之下;与Pod生命周期相同。
Namespace: 命名空间将对象逻辑上分配到不同Namespace,可以是不同的项目、用户等区分管理,并设定控制策略,从而实现多租户。
命名空间也称为虚拟集群。
Lable 标签用于区分对象(比如Pod、Service);
每个对象可以有多个标签,通过标签关联对象

Deployment Deployment是一个更高层次的API对象,它管理ReplicaSets和Pod,并提供声明式更新等功能。
官方建议使用Deployment管理ReplicaSets,而不是直接使用ReplicaSets

Replication Controller声明某个Pod的副本数在任意时刻都符合某个预期值

Kubernetes网络相关
Kubernetes为每个Pod都分配了唯一的IP地址,称之为PodIP,一个Pod里的多个容器共享PodIP地址。要求底层网络支持集群内任意两个Pod之间的直接通信,通常采用虚拟二层网络技术来实现(Flannel)

K8S组件功能介绍

K8S组件功能介绍

K8S组件功能介绍

猜你喜欢

转载自blog.51cto.com/14813861/2518624