kubernetes是谷歌开源的容器编排调度系统解决方案,已成为事实上的容器编排调度行业标准。
标准的kubernetes以集群的方式部署,如下所示:
k8s集群内有两种类型的节点,分别是control Plane(master)和node。
master
master节点运行k8s的大部分核心组件,包括apiserver,scheduler,controller-manager,etcd等,k8s作为容器编排调度系统
的大部分职责都在master节点实现。
etcd
etcd是k8s集群默认的存储后端,k8s集群内资源的最终都会以一定的规则存放在etcd中
kube-apiserver
kube-apiserver是集群外部访问k8s集群的入口。它提供了一组可扩展的restful api接口,集群外部可以通过apiserver操作k8s集群
kube-controller-manager
kube-controller-manager提供了对k8s控制器的管理功能。k8s集群内的各种资源的管理主要都是由各种控制器提供的。node,replicaset,deployment,
daemonset,statefuset,job等编排对象都有各自对应的控制器
kube-scheduler
kube-scheduler是k8s集群中负责容器(pod)调度的组件,所有未经过调度的容器都会通过调度器进行调度
node
node节点是k8s集群的工作节点,是业务容器运行的主要载体,通常有kubelet和kube-proxy两个组件。
kubelet
容器的生命周期管理主要在kubelet中实现,包括镜像管理服务,容器运行时服务,容器网络管理及容器存储管理等。
kube-proxy
kube-proxy则主要负责kubernetes的service在node节点上的具体实现