K8S根本组件梳理

火影  金牌会员 | 2024-10-3 15:06:06 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 850|帖子 850|积分 2550

Master组件

apiserver:对资源对象进行curd操作,例如pod和server;将全部的状态储存到etcd中。
schedule:监控未调度的pod,根据pod的资源需求、资源可用性和其他约束,选择最合适的节点来运行pod。
controller-manage:监控集群的状态,实现集群的自愈和自动化管理。
​        Replication controller:确保指定个数的pod副本在集群上运行。
​        Node controller:监控集群中节点(Node)的状态,确保节点的康健状况。
​        Endpoints controller:为services对象维护和更新其关联的Pod列表。
​        Namespace controller:管理K8S的中的定名空间,包括监控和清理被删除的。
​        Service controller:管理和维护LoadBalancer类型服务的外部负载平衡器。
​                        LoadBalancer是用于在多台服务器(或 Pod)之间分发网络流量的组件:
​                        - 流量分发:将来自外部的请求均匀地分配到多个后端实例(如 Pod 或服务器),以避免某一实例负载过重,进步应用的可                        用性和响应速度。
​                        - 高可用性:当某些后端实例不可用时,LoadBalancer 可以自动将流量重定向到康健的实例,确保服务的连续性。
​                        - 扩展性:通过负载平衡,系统可以动态添加或移除后端实例,以应对流量的变化,从而实现弹性伸缩。
​        ServiceAccount controller:为每个新创建的namespace自动创建默认的ServiceAccount对象,确保token被分配到这些                                                                ServerAccount中。

Node组件

kube-proxy:维护节点上的网络规则,服务负载平衡,根据据服务的虚拟 IP 地址和端口,将流量分发到后端的 Pod 上,确保流量能够                                均匀地分布在多个副本上。并根据这些变化动态更新自己的网络规则,确保流量始能够精确转发到当前有效的 Pod 。
kuberlet:是一个代理,他会根据主节点的指令,确保制定容器在节点的精确运行;他会监控容器的康健情况,向apiserver发送节点                        的状态,apiserver接收到这些节点的状态信息之后,会将它们更新到etcd中;kubelet也通过apiserver监听Pod信息,从而                        对Node机器上的Pod进行管理:如创建,更新,删除Pod。
容器运行时:每个工作节点需要一个容器运行时来运行和管理容器。
calico:提供容器网络和网络策略的办理方案,能实现容器和容器间的通信、流量控制和安全策略来加强器群的网络能力。
(通俗的讲就是给Pod和Service分配ip的)
其他组件

Etcd:是一个高可用的键值存储数据库,存储K8S的资源状态信息和网络信息,Etcd中的数据变动通过apiserver来进行。(基数选主,至少三个做高可用)
Coredns:是一个dns服务器,能够K8S Services提供dns记载(可以对Service名字进行分析,分析成Service的IP)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表