Kubernetes组件

本文阅读 4 分钟

Master node:

  • apiserver
  • scheduler
  • controller-manager
  • etcd
  • calico
  • docker

Work node:

  • kubelet
  • kube-proxy
  • Calico
  • Coredns
  • docker

image.png

kubectl

管理k8s的命令行工具,可以操作k8s中的资源对象,如增删查改等。

Etcd

是一个高可用的键值对数据库,存储k8s的资源状态信息和网络信息的。etcd中的数据变更是通过api server进行的

apiserver

提供k8s api,是整个系统的对外接口,提供资源操作的唯一入口

供客户端和其他组件调用,提供了k8s各类资源对象(pod,deployment,service等)的增删查改,是整个系统的数据总线和数据中心,并提供认证、授权、访问控制、API注册和发现等机制,并将操作对象持久化道etcd中。

scheduler

负责k8s集群中pod的调度的。scheduler通过与apiserver交互监听到创建pod副本的信息后,他会检索所有符合该pod要求的工作节点列表,开始执行pod调度逻辑,调度成功后将pod绑定到目标节点上,相当于“调度室”。

Controller-Manager

作为集群内部的管理控制中心,负责集群内的node、pod副本、服务端点(Endpoint)、命名空间(namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理,当某个node节点意外宕机时,Controller-manager会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态。

kubelet

每个node节点上的kubelet定期就会调用API server的rest接口报告自身状态,API server接受这些信息后,将节点状态信息更新到etcd中,kubelet也通过API server监听pod信息,从而对node机器上的pod进行管理。如创建、删除、更新pod

kube-proxy

提供网络代理和负载均衡,是实现service的通信与负载均衡机制的重要组件,kube-proxy负责为pod创建代理服务,从apiserver获取所有service信息,并根据service信息创建代理服务,实现service到pod的请求路由和转发,从而实现k8s层级的虚拟转发网络,将到service的请求转发到后段的pod上。

Cordns

CoreDns其实就是一个dns服务,而dns作为一种常见的服务发现手段,很多开源项目以及工程师都会使用coredns为几圈提供服务发现的功能,kubenetes就在集群中使用CoreDNS解决服务发现问题

Calico

是一套开源的网络和网络安全方案,用于容器、虚拟机、宿主机之前的网络链接,可以用在K8s、openshift、dockerEE,openstrack等paas或者lass平台上。

Docker

容器运行时,负责启动容器的。

在k8s1.20版本之后建议废除docker,使用containerd作为容器运行时

本文来自投稿,不代表本站立场,如若转载,请注明出处:
什么是分布式主键?怎么实现?
« 上一篇 09-17
Kubernetes核心资源
下一篇 » 09-25

发表评论

发表评论