Kubernetes中的逻辑组件

描述

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官网,给出的集群组件如下图所示:

node

各组件的大致含义是什么:

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负责。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分