Kubernetes是生产级别的容器编排系统,其物理集群有Master和Node两种类型的节点。
Master节点的进程有:
root@k8s:~# ps -el | grep kube
4 S 0 6224 6152 0 80 0 - 188636 futex_ ? 00:05:00 kube-scheduler
4 S 0 6275 6196 1 80 0 - 206354 ep_pol ? 00:23:02 kube-controller
4 S 0 6287 6181 5 80 0 - 278080 futex_ ? 01:19:40 kube-apiserver
4 S 0 6501 1 3 80 0 - 487736 futex_ ? 00:46:38 kubelet
4 S 0 6846 6818 0 80 0 - 187044 futex_ ? 00:00:26 kube-proxy
Node节点的进程有:
# node1
root@k8s:~# ps -el | grep kube
4 S 0 22869 22845 0 80 0 - 187172 futex_ ? 00:00:23 kube-proxy
4 S 0 26395 1 2 80 0 - 505977 futex_ ? 00:28:10 kubelet
# node2
root@k8s:/# ps -el | grep kube
4 S 0 28227 1 1 80 0 - 487480 futex_ ? 00:17:26 kubelet
4 S 0 28724 28696 0 80 0 - 187044 futex_ ? 00:00:17 kube-proxy
Kubernetes官网,给出的集群组件如下图所示:
各组件的大致含义是什么:
kube-api-server是负责提供Kubernetes API服务的组件,所有请求都要调用这个组件,结果状态存在etcd数据库中。
etcd 是键值数据库,存储配置信息和状态信息。
kube-scheduler是负责资源调度的组件,决定将Pod放在哪个Node上运行。
kube-controller-manager是在主节点上运行控制器的组件,负责管理资源并使之处于“用户期望”的状态。
kubelet是一个在集群中每个节点上运行的代理。接受kube-scheduler的调度请求,并根据请求信息创建和运行容器。
kube-proxy是集群中每个节点上运行的网络代理,实现对外服务的提供。
简单地理解,Master节点是集群的大脑,负责策略应用程序的部署,并达到用户的期望状态。具体来说,可以将Master节点本身看成一个APP,该APP接收用户的部署请求,并将其记录到数据库中。同时,根据集群的负载进行资源的灵活调度(Schedule),当资源出现异常时,通过Controller来达到“用户期望”的状态。
Node节点是干活的角色,有2个职责,一个是负责创建Pod,提供应用程序的运行环境。这个职责由kubelet组件负责。另一个是负责提供对外服务的访问点,以便外部能够访问。这个职责由kube-proxy负责。
全部0条评论
快来发表一下你的评论吧 !