2.k8s架构

目录

k8s集群架构

控制平面

kube-apiserver

kube-scheduler

etcd

kube-controller-manager

[node 组件](#node 组件)

kubelet

kube-proxy

[容器运行时(Container Runtime)](#容器运行时(Container Runtime))

cloud-controller-manager

相关概念


k8s集群架构

一个Kubernetes集群至少包含一个控制平面(control plane),以及一个或多个工作节点(worker node)。
控制平面 (Control Plane) : 控制平面负责管理工作节点和维护集群状态。所有任务分配都来自于控制平面。
工作节点(Worker Node) : 工作节点负责执行由控制平面分配的请求任务,运行实际的应用和工作负载。

控制平面

控制平面组件会为集群做出全局决策,比如资源的调度、检测和响应集群事件。

kube-apiserver

如果需要与Kubernetes 集群进行交互,就要通过 API。

apiserver是 Kubernetes 控制平面的前端,用于处理内部和外部请求。

kube-scheduler

集群状况是否良好?如果需要创建新的容器,要将它们放在哪里?这些是调度程序需要关注的问题。

scheduler调度程序会考虑容器集的资源需求(例如 CPU 或内存)以及集群的运行状况。随后,它会将容器集安排到适当的计算节点。

etcd

etcd是一个键值对数据库,用于存储配置数据和集群状态信息。

kube-controller-manager

控制器负责实际运行集群,controller-manager控制器管理器则是将多个控制器功能合而为一,降低了程序的复杂性。

controller-manager包含了这些控制器:

● 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应

● 任务控制器(Job Controller):监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成

● 端点控制器(Endpoints Controller):填充端点(Endpoints)对象(即加入 Service 与 Pod)

● 服务帐户和令牌控制器(Service Account & Token Controllers):为新的命名空间创建默认帐户和 API 访问令牌

node 组件

节点组件会在每个节点上运行,负责维护运行的 Pod 并提供 Kubernetes 运行环境。

kubelet

kubelet 会在集群中每个节点(node)上运行。 它保证容器(containers)都运行在 Pod 中。

当控制平面需要在节点中执行某个操作时,kubelet 就会执行该操作。

kube-proxy

kube-proxy 是集群中每个节点(node)上运行的网络代理,是实现 Kubernetes 服务(Service) 概念的一部分。

kube-proxy 维护节点网络规则和转发流量,实现从集群内部或外部的网络与 Pod 进行网络通信。

容器运行时(Container Runtime)

容器运行环境是负责运行容器的软件。

Kubernetes 支持许多容器运行环境,例如 containerd、docker或者其他实现了 Kubernetes CRI (容器运行环境接口)的容器。

cloud-controller-manager

控制平面还包含一个可选组件cloud-controller-manager。

云控制器管理器(Cloud Controller Manager)允许你将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。

如果在自己的环境中运行 Kubernetes,或者在本地计算机中运行学习环境, 所部署的集群不需要有云控制器管理器。

相关概念

Maste

集群控制节点,每个集群需要至少一个master节点负责集群的管控

Node

工作负载节点,由master分配容器到这些node工作节点上,然后node节点上的docker负责容器的运行

Pod

kubernetes的最小控制单元,容器都是运行在pod中的,一个pod中可以有1个或者多个容器

Controller

控制器,通过它来实现对pod的管理,比如启动pod、停止pod、伸缩pod的数量等等

Service

pod对外服务的统一入口,下面可以维护者同一类的多个pod

Label

标签,用于对pod进行分类,同一类pod会拥有相同的标签

NameSpace

命名空间,用来隔离pod的运行环境

参考资料:

Kubernetes 组件 | Kubernetes

Kubernetes 架构入门指南:一文带你看懂 K8s 架构

相关推荐
海鸥81几秒前
Kubernetes 集群中缺少 kagent.dev/v1alpha2
云原生·容器·kubernetes
Lyyaoo.2 分钟前
【JAVA基础面经】线程安全的单例模式
java·安全·单例模式
枫叶林FYL3 分钟前
【Python高级工程与架构实战】项目四 现代ETL编排平台:Airflow + dbt + Snowflake 企业级数据管道架构与实现
人工智能·python·架构·etl
_李小白7 分钟前
【OSG学习笔记】Day 39: NodeCallback(帧回调机制)
java·笔记·学习
如来神掌十八式9 分钟前
设计模式之装饰器模式
java·设计模式
艾莉丝努力练剑9 分钟前
【QT】Qt常用控件与布局管理深度解析:从原理到实践的架构思考
linux·运维·服务器·开发语言·网络·qt·架构
独特的螺狮粉12 分钟前
古诗词飞花令随机出题小助手:鸿蒙Flutter框架 实现的古诗词游戏应用
开发语言·flutter·游戏·华为·架构·开源·harmonyos
踏月的造梦星球13 分钟前
浅谈DMHS架构与原理
架构
cch891816 分钟前
C++、Python与汇编语言终极对比
java·开发语言·jvm
好家伙VCC27 分钟前
**InfluxDB实战进阶:基于Golang的高性能时序数据采集与可视化方
java·开发语言·后端·python·golang