【2】Kubernetes 架构总览

Kubernetes 架构总览

主节点与工作节点

主节点

Kubernetes 的主节点(Master)是组成集群控制平面的关键部分,负责整个集群的调度、状态管理和决策。控制平面由多个核心组件构成,包括:

  • kube-apiserver:集群的通信中心,所有组件和用户请求都要经过它API Server通过443端口对外提供
    RESTful风格的接口。
  • kube-controller-manager:负责各种控制循环,如副本控制、节点状态监控等(注意,这里有非常多的不同功能的controller被管理,例如Replication Controller,Deployment Controller)
  • kube-scheduler:负责将新创建的 Pod 调度到合适的工作节点上
  • etcd:用于保存所有集群状态数据的分布式数据库。(所有控制组件的状态数据都存储在 etcd 中,它是整个 Kubernetes 的"单一数据源"。 )

一种最简单的部署方式是将这些控制组件部署在同一台主机上,这适合实验或测试环境。而在生产环境中,主节点的高可用部署是必不可少的。

通常建议使用 3 或 5 个主节点副本来实现高可用。

(为什么是奇数个?🤔)

因为控制平面依赖 etcd 数据库,而 etcd 的一致性机制需要多数派(quorum)投票。使用奇数个副本可以有效避免脑裂,保证集群稳定性。

工作节点

工作节点

它是Kubernetes集群中的工作者。从整体上看,工作节点主要负责监听API Server分派的新任务,执行这些任务,向控制平面回复任务执行的结果(通过API Server),那么他的主要组件如下:

  • kubelet:与控制平面通信,监听API Server分派的新任务,接收任务并管理本节点的 Pod;
  • kube-proxy:维护网络规则(iptables/ipvs)和服务的负载均衡;
  • 容器运行时(如 containerd):用于真正运行容器。
  • Kubernetes DNS:Kubernetes集群自己内部的DNS服务,这对于集群操作也是非常重要的。

集群DNS服务有一个静态IP地址,并且这个IP地址集群总每个Pod上都是硬编码的,这意味着每个容器以及Pod都能找到DNS服务。每个新服务都会自动注册到集群DNS服务上,这样所有集群中的组件都能根据名称找到相应的服务。一些其他的组件也会注册到集群DNS服务,例如Statefulset以及由Statefulset管理的独立Pod。

它是基于CoreDNS来实现的。

一般来说,工作节点就是运行的我们的各种服务,当然也包含工作节点专属的组件(kubelet、kube-proxy、容器运行时)。

相关推荐
Anymous几秒前
我手写的 Redis 锁,输给了 10 秒的 TTL
后端·架构
xbzb6 分钟前
从零容器化部署 ECShop:Harbor 私有仓库 + 自定义 PHP 镜像 + LNMP 三容器
容器·php·harbor·镜像·仓库·ecshop
那明眸似水22 分钟前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
草莓熊Lotso1 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
腾飞开源1 小时前
03_Kubernetes 核心概念拆解:从 Spec/Status 收敛到工作负载控制器的设计逻辑
云原生·容器·kubernetes
非优秀程序员11 小时前
第04章 邮箱大战,163 与 QQ 的暗战|《互联网产品恩仇录》
java·vue.js·架构
知已难寻12 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
Dawson Zhu15 小时前
【LLM推理与Serving⑪】MoE推理与MLA:DeepSeek-V3架构下的显存与通信权衡
人工智能·语言模型·架构·aigc·agi
xbzb17 小时前
镜像到底存在哪:/var/lib/docker 的四级映射与 daemon.json 配置
docker·容器·json·镜像·daemon.json·四级
IT规划师20 小时前
NET10 高并发架构契约与落地实现
架构·.net