Kubernetes的组件分为三大类:核心组件、CLI客户端和核心附件
核心组件
- Etcd服务(集群)-配置存储中心
存储集群的元数据信息,通过键值对组织数据 - 主控节点(master)节点
- kube-apiserver服务
提攻集群管理的RESTAPI接口(包括鉴权、数据校验及集群状态变更);
负责其他模块之间的数据交互,承担通信枢纽功能
是资源配额控制的入口
提供完备的集群安全机制 - kube-controller-manager服务
控制器管理器,由一系列控制器组成,通过apiserver监控整个集群的状态,并确保集群处于预期的工作状态 - kube-scheduler服务
主要功能是接收调度pod到适合的运算节点上,scheduler用预算策略(predict)和优选策略(priortities)方法帮你在最适合运行pod的地方,通知内部节点的kubelet把pod拉起
- 运算(node)节点
1.kube-kubelet服务
主要功能是定时从某个地方获取节点上pod的期望状态(运行什么容器、运行的副本数量、网络或者存储如何配置等等),并调用对应的容器平台接口(如docker接口)达到这个状态
定时汇报当前节点的状态给apiserver,以供调度的时候使用
镜像和容器的清理工作,保证节点上镜像不会占满磁盘空间,退出的容器不会占用太多资源
2.kube-proxy服务
是Kubernetes在每个节点上运行网络代理、service资源的载体
建立了pod网络和集群网络的关系(把clusterip和podip关联起来了)
常用三种流量调度模式Userspace【废弃】、Iptables【濒临废弃】、Ipvs【推荐
】
负责建立和删除包括更新调度规则、通知apiserver自己的更新,或者从apiserver那里获取其他kube-proxy的调度规则变化来更新自己的(若干运算节点都起kube-proxy,通过apiserver找etcd同步状态)
CLI客户端
- kubectl命令行工具
核心附件
- CNI网络组件:fannel/calico
- 服务发现用插件:coredns
- 服务暴露用插件:traefik
- GUI管理插件:Dashboard
Kubernetes有三套网络:Service(集群)网络,Node(节点)网络,Pod(容器)网络
节点网络:运算节点宿主机网络
Pod网络:所有的Pod都是从宿主机上NAT出来的
Service网络:虚的网络、Server网络和Pod网络通过kube-proxy连接起来
网友评论