k8s集群介绍

Kubernetes集群组件

       一个典型的Kubernetes集群由多个工作节点和一个集群控制节点,以及一个集群状态存储系统etcd组成。其中Master节点负责整个集群管理工作,为集群提供管理接口,并监控和编排集群中的各个工作节点。各个节点负责以pod的形式运行容器,因此,各个节点需要实现配置好运行容器的依赖到的所有服务及资源,如容器运行时环境等

      Master节点主要由apiserver、controller-manger和scheduler 三个组件,以及一个用于集群状态存储的etcd存储组成,而每个Node节点则主要包含kubelet、kube-proxy及容器引擎(Docker是最为常见的实现)等组件。此外,完整的集群服务还依赖一些附加组件,如kubeDNS等

Master组件

       Kubernetes的集群控制平面由多个组件组成,这些组件可以统一运行于单一的Master节点,也可以以多副本的方式同时运行于多个节点,以为Master提供高可用功能,甚至可以运行于Kubernetes集群自身之上。Master包括以下几个组件

(1)API server: API-server 负载输出RESTful风格的Kubernetes API, 它是集群的所有REST操作命令的接入点,并负责接收、校验并响应所有REST请求,结果状态被持久存储于etcd中。因此API server 是整个集群网关

(2)集群状态存储(Cluster state Store):Kubernetes集群的所有状态信息都需要持久存储于etcd中,不过,etcd是有CoreOS基于Rart协议开发的分布式键值存储,可用服务发现、共享配置以及数据一致性保障。因此,etcd是独立的服务组件,并不属于Kubernetes集群自身。生产环境中应该以etcd集群的方式运行以保障服务可用性;etcd不仅提供键值数据存储,而且还为其提供了监听机制,用于监听和推送变更。Kubernetes集群中,etcd键值发生变化时会通知到API server,并由其通过watch API 向客户的输出。基于watch机制,Kubernetes集群组件实现高效协同

(3)控制器管理器(controller Manager ):Kubernetes中,集群级别的大多数功能都是由几个称为控制器的进程执行完成的,这几个进程被集成与kube-controller-manager守护进程中,由控制器完成的功能主要包括生命周期功能和API业务逻辑,具体如下

生命周期功能:包括namespace创建和生命周期、Event垃圾回收、pod终止相关垃圾回收、级联垃圾回收及Node垃圾回收等。

API逻辑:例如由ReplicaSet执行Pod扩展

(4)调度器(Scheduler):Kubernetes是用于部署和管理大规模容器应用的平台,根据集群规模不同,其托管运行的容器很可能会数以千计甚至更多。APIserver确认Pod对象的创建请求之后,便以需要有Scheduler根据集群内各个节点的可用资源状况,以及要运行的容器的资源需求做出调度决策,另外,Kubernetes还支持用户自定义调度器

Node组件

      Node负责提供运行容器的各种依赖环境,并接受Masert管理。每个Node由一下几个组件构成

(1)Node的核心代理程序kubelet:kubelet是运行在

猜你喜欢

转载自www.cnblogs.com/rdchenxi/p/10931127.html