灌篮少年 发表于 2024-8-20 10:36:44

【K8S】K8S架构及相关组件

https://i-blog.csdnimg.cn/direct/1a6310be737e45e5a3fcf3f9e48adaf4.png


1 K8S总体架构

K8S,全称Kubernetes,是一个开源的容器摆设和管理平台,由Google开发,后募捐给云原生计算基金会(CNCF)。K8S提供了容器编排、容器运行时、以容器为中央的基础设施编排、负载均衡、自我修复机制和服务发现等功能。K8S的架构采用主从设备模型(Master-Slave架构),即由Master节点负责集群的调理、管理和运维,Slave节点作为集群中的运算工作负载节点。
https://i-blog.csdnimg.cn/direct/94da40acbfc549babe8210f2a9f446e5.png


[*]中央控制节点(Master Node): 位于集群的中央,包含API Server、Scheduler、Controller Manager和etcd等组件。这些组件协同工作,负责集群的管理、调理和状态监控。
[*]工作节点(Worker Node): 围绕在Master Node周围,每个Node节点上运行Kubelet、Kube-Proxy和容器运行时等组件。这些节点负责实行Master节点分配的任务,运行和管理容器实例。
[*]Pod: Pod是Kubernetes中的最小调理单元,由一个或多个容器构成,这些容器共享存储和网络资源。Pod是Kubernetes生态系统中的核心管理单元。作为最小调理单元,分布在各个Node节点上,由容器构成,共享存储和网络资源。
[*]服务(Service): 为Pod提供稳固的网络接入点,实现服务发现和负载均衡。
2 相关组件

K8S的控制面板组件(Master)是集群的核心部分,负责整个集群的管理和调理。这些组件协同工作,确保了Kubernetes集群的稳固运行和高效管理。而K8S的节点组件主要包括Node节点上的组件,这些组件负责在Node节点上运行容器化应用,并与管理节点(Master节点)举行通讯。
https://i-blog.csdnimg.cn/direct/b81fd89a3849462b96d9cf729e5b69b8.png
2.1 控制面板组件


[*]etcd
● 功能:etcd是一个高度可靠的分布式键值存储,用于存储集群配置信息的长期化存储。etcd生存了Kubernetes集群的全部状态数据,如Pods、Services等资源的界说和状态。当数据发生变化时,etcd会快速地通知Kubernetes相关组件。
● 特点:etcd是一个独立的服务组件,并不从属于Kubernetes集群。在生产环境中,etcd通常以集群方式运行,以确保服务的可用性。
[*]kube-apiserver
● 功能:kube-apiserver是Kubernetes集群的API服务器,是集群的前端服务器,提供了HTTP/HTTPS RESTful API,即Kubernetes API。全部的哀求都必要经过这个接口举行通讯。它负责接收、校验并响应全部的REST哀求,并将效果状态长期化存储在etcd中。
● 认证与授权:kube-apiserver支持多种身份验证机制,如基于令牌、证书和用户名/暗码的身份验证。同时,它还使用RBAC(Role-Based Access Control)机制来管理Kubernetes资源的授权。
● 架构:kube-apiserver的架构是一个多层的系统,由HTTP Server提供HTTP(S)服务。全部的API哀求都通过HTTP(S)举行传输,并由kube-apiserver处理。
[*]kube-controller-manager
● 功能:kube-controller-manager是Kubernetes集群中的控制器管理器,负责管理集群中全部的控制器(controller)。这些控制器包括节点控制器(Node Controller)、副本控制器(Replication Controller)等。它们不停地监听集群状态变化,并根据盼望状态和实际状态的差别来举行调谐。
● 架构:从逻辑上讲,每个控制器都是一个单独的进程,但为了低落复杂性,它们都被编译到同一个可实行文件,并在同一个进程中运行。
[*]cloud-controller-manager(可选)
● 功能:cloud-controller-manager用于管理与特定云平台相关的控制器。它的作用是将云平台的功能封装成Kubernetes的API,以便与其他组件举行交互。
[*]kube-scheduler
● 功能:kube-scheduler是Kubernetes集群的默认调理器,负责将新创建的Pod调理到符合的节点上。调理决策考虑的因素包括单个Pod及Pods集合的资源需求、软硬件及计谋约束、亲和性及反亲和性规范、数据位置、工作负载间的干扰及最后时限等。
● 调理算法:kube-scheduler通过Predicate(预选)和Priority(优选)两种调理算法来选择最符合的节点。Predicate用于过滤掉不满足条件的节点,Priority用于在剩余节点中选择优先级最高的节点。
2.2 节点组件


[*]kubelet:在每个节点上运行的署理,负责管理该节点上的容器、Pod 和容器相关的资源。是节点与主节点通讯的桥梁,实行主节点下发的指令。
[*]kube-proxy:网络署理,负责实现 Kubernetes 服务的网络抽象和负载均衡。它将对服务的访问转发到后端的一组 Pod 上。提供服务的网络访问能力,确保服务的可靠性和可扩展性。
[*]容器运行时(Container Runtime):负责在节点上运行容器的运行时环境。Kubernetes 支持多种容器运行时,如 Docker、containerd、CRI-O 等。是容器化应用运行的基础,提供容器的创建、运行和管理能力。
2.3 附加组件



[*]kube-dns/coredns:DNS 服务,负责为 Pod 提供 DNS 剖析服务,使得在集群内部可以使用域名来访问其他服务。
[*]Ingress Controller:负责将外部流量引入到集群内部的服务,并实行负载均衡、SSL 终止等功能。
[*]Monitoring and Logging:用于监控和日志记载集群中的应用步调和基础设施,如 Prometheus、EFK Stack 等。
[*]Cluster Autoscaler:主动扩展集群节点数量,根据负载环境主动增加或淘汰节点数量以满足需求。
[*]Horizontal Pod Autoscaler:主动扩展 Pod 的副本数量,根据 CPU 使用率或自界说指标调解 Pod 的数量。
写在最后

 本文已被专栏 Kubernetes 收录,欢迎 点击订阅专栏
 以上便是本文的全部内容啦!创作不易,假如你有任何题目,欢迎私信,感谢您的支持!
https://i-blog.csdnimg.cn/blog_migrate/3906d88100f07fdb64c9ffbc56c2bc02.gif#pic_center

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【K8S】K8S架构及相关组件