K8S 全局架构图 —— 筑梦之路

  • kube-apiserver:

    Kubernetes API 服务器验证并配置 API 对象的数据, 这些对象包括 pods、services、replicationcontrollers 等。API 服务器为 REST 操作提供服务,并为集群的共享状态提供前端, 所有其他组件都通过该前端进行交互。

  • kube-scheduler:

    调度器通过 Kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到节点上的 Pod。调度器会将所发现的每一个未调度的 Pod 调度到一个合适的节点上来运行。调度器会依据下文的调度原则来做出调度选择。

  • kube-controller-manager:

    Kubernetes 控制器管理器是一个守护进程,内嵌随 Kubernetes 一起发布的核心控制回路。在机器人和自动化的应用中,控制回路是一个永不休止的循环,用于调节系统状态。在 Kubernetes 中,每个控制器是一个控制回路,通过 API 服务器监视集群的共享状态, 并尝试进行更改以将当前状态转为期望状态。目前,Kubernetes 自带的控制器例子包括副本控制器、节点控制器、命名空间控制器和服务账号控制器等。

  • etcd:存储kube-apiserver处理过的持久化数据。

  • kubelet:

    • 容器运行时(Container Runtime)是在节点上的守护进程, 被配置用来为 kubelet 提供 CRI 服务。kubelet负责与容器运行时(如Docker、containerd)交互。这种交互依赖于容器运行时接口(CRI,Container Runtime Interface)对容器创建、启动、停止等操作。

    • kubelet还通过gRPC协议同设备插件进行交互。设备插件允许一个节点发现新的 Node 设施(除了 cpumemory 等内置的节点资源之外), 并向请求资源的 Pod 提供了这些自定义的节点本地设施。

    • 容器存储接口(CSI,Container Storage Interface)提供了一种扩展 Kubernetes 的方式使其支持新类别的卷。这些卷可以由持久的外部存储提供支持,可以提供临时存储,还可以使用文件系统范型为信息提供只读接口。

    • 容器网络接口(CNI,Container networking Interface)可以让 Kubernetes 使用不同的网络拓扑和技术。你的 Kubernetes 集群需要一个 网络插件 才能拥有一个正常工作的 Pod 网络, 才能支持 Kubernetes 网络模型的其他方面。

在 Kubernetes 1.24 之前,CNI 插件也可以由 kubelet 使用命令行参数 cni-bin-dirnetwork-plugin 管理。Kubernetes 1.24 移除了这些命令行参数, CNI 的管理不再是 kubelet 的工作。

  • kube-proxy:

    kube-proxy 是集群中每个节点(node)上所运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。kube-proxy 维护节点上的一些网络规则, 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信。

相关推荐
YIBO0408几秒前
WSL2下Docker desktop的Cadvisor容器监控
运维·docker·容器·wsl·wsl2
weixin_428498493 分钟前
Docker inspect 命令介绍
docker·容器
weisian15133 分钟前
云原生--核心组件-容器篇-6-Docker核心之-镜像仓库(公共仓库,私有仓库,第三方仓库)
docker·云原生·容器
冼紫菜1 小时前
[特殊字符] Docker 从入门到实战:全流程教程 + 项目部署指南(含镜像加速)
运维·分布式·后端·docker·云原生·容器
BLEACH-heiqiyihu2 小时前
k8s-Pod生命周期
云原生·容器·kubernetes
小马爱打代码2 小时前
Spring Boot × K8s 监控实战-集成 Prometheus 与 Grafana
spring boot·kubernetes·prometheus
Mr-Apple6 小时前
docker安装Canal1.1.5,MySQL5.7踩坑
运维·docker·容器
@t.t.8 小时前
Docker容器资源控制--CGroup
linux·运维·docker·容器·云计算
AKAMAI8 小时前
迎难而上驾驭Kubernetes
云原生·kubernetes·云计算