Kubernetes系统架构及组件功能 笔记

Kubernetes系统架构及组件功能

Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。

Kubernetes节点有运行应用容器必备的服务,而这些都是受Master的控制。

每次个节点上当然都要运行Docker。Docker来负责所有具体的映像下载和容器运行

Kubernetes主要由以下几个核心组件组成:

  • etcd保存了整个集群的状态;
  • Kube-apiserver:Kubernetes API,集群的统一入口,以HTTP API提供接口服务,所有对象资源的增删改查和监控操作都交给APIServer处理后再提交给Etcd存储。官网介绍apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
  • Kube-controller manager处理集群中常规后台任务,一个资源对应一个控制器,而Controller manager就是负责管理这些控制器的。官网介绍controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
  • Kube-scheduler:根据调度算法为新创建的Pod选择一个Node节点。官网介绍是负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
  • kubelet:是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、下载secret,获取容器和节点状态等工作。kubelet将每个pod转换成一组容器。官网介绍:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
  • Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
  • kube-proxy:在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工做。官网介绍:负责为Service提供cluster内部的服务发现和负载均衡,维护网络规则;
  • docker或rocket/rkt:运行容器。

第三方服务

  • etcd:分布式键值存储系统,用于保持集群状态,比如Pod、Service等对象信息。

除了核心组件,还有一些Add-ons:

  • kube-dns负责为整个集群提供DNS服务
  • Ingress Controller为服务提供外网入口
  • Heapster提供资源监控
  • Dashboard提供GUI
  • Federation提供跨可用区的集群
  • Fluentd-elasticsearch提供集群日志采集、存储与查询

猜你喜欢

转载自blog.csdn.net/xiaohuibin0541/article/details/83747980
今日推荐