k8s--组件篇

转自https://blog.csdn.net/hty46565/article/details/78813169

API Server

kubernetes API Server通过kube-apiserver进程提供服务,该进程运行在master节点上。API Server是kubernetes的核心组件,是各个组件通信的通道。

1.集群管理的API入口

资源对象如Deployment、Service、ReplicationController、ConfigMap等,都是通过API Server进行操作。而通过API Server,我们就可以往etcd(存储着集群的各种数据)中写入数据。


image.png

2.资源分配控制的入口

Kubernetes可以从各个层级对资源进行分配控制。如容器的CPU使用量、命名空间的资源数量等。这也是通过APIServer进行配置的。这些资源分配情况写在etcd中。

3.提供完备的集群安全机制

Controller Manager

Replication Controller

副本控制器用于保证Deployment或者RC中副本的数量。

Node Controller

通过API Server监控etcd中存储的关于节点的各类信息,这些信息是kubelet定时推给API Server的,由API Server写入etcd。其中记录的节点信息包括:节点监控状况、节点资源、节点名称、节点地址信息、操作系统版本、docker版本、kubelet版本等。监控到节点信息若有异常,则会对节点进行某种操作,如节点状态变为故障状态,则删除节点以及跟该节点相关的POD等资源的信息。


image.png

ResourceQuota Controller

将期望的资源配合信息通过API Server写入etcd中,然后ResourceQuota Controller会定时地统计这些信息,在系统请求资源的时候将读取这些统计信息,如果不合法就不会给分配该资源,创建行为将报错。

Namespace Controller

用户可以通过API Server创建新的命名空间并保存到etcd中。命名空间控制器会定时通过APIServer读取这些命名空间信息并做对应的对于命名空间的一些操作。

Endpoints Controller

负责生成和维护所有的Endpoints对象的控制器。Endpoints表示了一个Service对应的所有Pod副本的访问地址。一个Service可能对应了多个Endpoints,那么,在创建一个新的Service时Endpoints Controller就会生成对应的Endpoints。在service被删除时,Endpoints Controller就会删除对应的Endpoints。

Scheduler

kubernetes的调度器,用于监听APIServer,当需要创建新的Pod时,Scheduler负责选择该Pod与哪个Node进行绑定。将此绑定信息通过APIServer写到etcd中。
若此时与Node A进行绑定,那么A上的kubelet就会从APIServer上监听到此事件,那么kubelet就会做相应的创建工作。
此调度涉及到三个对象,待调度的Pod,可用的Node,调度算法。简单说,就是使用某种调度算法为待调度的Pod找到合适的运行次Pod的Node。


image.png

Kubelet

每个Node节点上都会有一个kubelet负责Master下发到该节点的具体任务,管理该节点上的Pod和容器。而且会在创建之初向APIServer注册自身的信息,定时汇报节点的信息。它不?通过cAdvisor监控容器和节点资源。

节点管理

Kubelet在创建之初就会向APIServer做自注册,然后会定时报告节点的信息给APIServer写入etcd中。默认周期为10秒钟。

Pod管理

kubelet通过监听APIServer,如果发现对Pod有什么操作,它就会做出相应的动作。例如发现有Pod与本Node进行了绑定,那么kubelet将会创建响应的pod且调用Docker Client下载image并运行容器。

容器健康检查

有三种方式对容器做健康检查:
1.在容器内部运行一个命令,如果该命令的退出状态码为0,则表明容器健康。
2.TCP检查。
3.HTTP检查。

cAdvisor资源监控

Kubelet通过cAdvisor对该节点的各类资源进行监控。如果集群需要这些监控到的资源信息,可以安装一个组件Heapster。

Heapster会进行集群级别的监控,它会通过Kubelet获取到所有节点的各种资源信息,然后通过带着关联标签的Pod分组这些信息。

如果再配合InfluxDB与Grafana,那么就成为一个完整的集群监控系统了。

Kube-proxy

负责接收并转发请求。Kube-proxy的核心功能是将到Service的访问请求转发到后台的某个具体的Pod。

无论是通过ClusterIP+Port的方式还是NodeIP+NodePort的方式访问Service,最终都会被节点的Iptables规则重定向到Kube-proxy监听服务代理端口,该代理端口实际上就是SocketServer在本地随机打开的一个端口,SocketServer是Kube-proxy为每一个服务都会创建的“服务代理对象”的一部分。

当Kube-proxy监听到Service的访问请求后,它会找到最适合的Endpoints,然后将请求转发过去。具体的路由选择依据Round Robin算法及Service的Session会话保持这两个特性。

Etcd

Etcd一种k-v存储仓库,可用于服务发现程序。在Kubernetes中就是用Etcd来存储各种k-v对象的。

所以我也认为Etcd是Kubernetes的一个重要组件。当我们无论是创建Deployment也好,还是创建Service也好,各种资源对象信息都是写在Etcd中了。

各个组件是通过API Server进行交流的,然而数据的来源是Etcd。所以维持Etcd的高可用是至关重要的。如果Etcd坏了,任何程序也无法正常运行了。

总结

Kubernetes的这些组件各自分别有着重要的功能。它们之间协同工作,共同保证了Kubernetes对于容器化应用的自动管理。

其中API Server起着桥梁的作用,各个组件都要通过它进行交互。Controller Manager像是集群的大管家,管理着许多事务。Scheduler就像是一个调度亭,负责Pod的调度工作。

Kubelet则在每个节点上都有,像是一个执行者,真正创建、修改、销毁Pod的工作都是由它来具体执行。Kube-proxy像是负载均衡器,在外界需要对Pod进行访问时它作为代理进行路由工作,将具体的访问分给某一具体的Pod实例。

Etcd则是Kubernetes的数据中心,用来存储Kubernetes创建的各类资源对象信息。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容