网站首页 > 文章精选 正文
K8S是云原生最核心的内容,也是云计算的未来,下满我就全面来详解K8S以及原理@mikechen
本文作者:陈睿|mikechen
文章来源:mikechen.cc
K8S
Kubernetes(简称 K8s),K8s 是云原生生态的核心组件,也是云技术最核心的内容。
K8S,通过提供容器化应用的调度、编排、以及运行、和管理,是实现 DevOps 、和微服务架构的关键。
K8S工作原理
K8S的整体架构设计,如下图所示:
K8S, 采用主节点(Master Node)、和工作节点(Master-Worker)的分布式设计,并且,支持大规模容器、和管理。
K8S主节点(Master Node)
K8S主节点,负责:整个集群的状态、与生命周期。
并且,K8S主节点,管理所有的工作节点、和容器化的应用程序。
K8S主节点,主要组件如下:
API Server
API Server,主要负责:接收用户请求,并将其传递给其他组件,是 K8S的统一入口。
整体架构,如下图所示:
API Server 是 Kubernetes(K8S)集群的“用户接口”,所有的管理、和操作请求都通过它进行。
无论是创建 Pod、更新 Deployment,还是查询集群状态,都需要与 API Server 交互。
在集群中,所有的配置、调度、控制、健康检查等工作都依赖于 API Server。
并且,API Server 管理所有资源的 CRUD 操作,并通过 etcd 保存资源状态。
ETCD
etcd ,是集群的数据存储,保存所有集群状态、和配置的键值数据库...等等重要信息。
etcd ,通常也会部署成多个副本(etcd 集群),以确保数据的持久性和一致性。
Controller Manager
Controller Manager ,是 Kubernetes(K8S)、与云平台之间的桥梁,负责:处理与云基础设施相关的资源管理任务。
Controller Manager 是由多个控制器组成的,每个控制器负责管理 Kubernetes 中某种类型的资源。
常见的控制器,如下图所示:
- Node Controller:负责管理、与云平台上的节点相关的操作,例如:节点的生命周期管理、节点的健康检查...等;
- Route Controller:负责在云平台上,配置路由规则,以便 Kubernetes(K8S)服务,可以与外部通信;
- Service Controller:管理与云负载均衡器相关的资源,负责为类型为 LoadBalancer 的 Kubernetes(K8S)服务创建、和配置云负载均衡器;
- Ingress Controller:管理、和配置与云负载均衡器相关的 Ingress 资源,支持在云平台上配置 HTTP/HTTPS 路由。
Scheduler
K8S Scheduler(调度器), 在 Kubernetes(K8S)集群中扮演着至关重要的角色。
Scheduler的主要任务是:负责将 Pod(容器组),调度到适合的 工作节点 上执行。
在调度过程中,调度器需要考虑多个因素,比如:资源需求、节点的可用资源、以及定义的调度策略...等。
K8S工作节点
K8S工作节点,主要执行主节点分配的实际任务,比如:运行容器化应用程序(Pod)...等等。
+---------------------+ +---------------------+
| 工作节点 (Worker) | | 工作节点 (Worker) |
+---------------------+ +---------------------+
| - Kubelet | | - Kubelet |
| - Kube-proxy | | - Kube-proxy |
| - 容器运行时 | <-----> | - 容器运行时 |
+---------------------+ +---------------------+
| |
| |
+-------+ +-------+
| Pod | | Pod |
+-------+ +-------+
K8S工作节点,整体架构,如下图所示:
K8S的工作流程,大致如下:
API Server 是 Kubernetes 集群的入口,接收并验证所有的请求;
首先,用户定义请求,比如:定义一个 Deployment、Pod、 或 Service;
然后,API Server 接收并处理请求,API Server 会验证用户的身份(认证),并授权其操作(授权)。
然后,交给其它组件,比如:Controller Manager 和、Scheduler,来调度 Pod 到合适的节点;
最后,管理节点上的容器,确保 Pod 持续运行,K8S自动维护集群资源的健康、和稳定。
本文作者:陈睿|mikechen
文章来源:mikechen.cc
猜你喜欢
- 2025-03-20 Activemq 常见问题解决办法(activemq 启动报错)
- 2025-03-20 一文实战K8S中的服务发现和负载均衡
- 2025-03-20 这样构建 K8s 中间件运维平台,运维真的能少遭很多罪……
- 2025-03-20 K8S调试利器:telepresence2使用文档
- 2025-03-20 k8s面试题汇总(k8s面试题目详解)
- 2025-03-20 Java基础教程:k8s快速入门(k8s jvm参数)
- 2025-03-20 线上 K8s 集群性能评估、基础服务部署调优
- 2025-03-20 K8s入门教程:10分钟带你速览全程(k8s实战教程)
- 2025-03-20 微服务之——K8S基本概念+组件(基于k8s的微服务实例)
- 2025-03-20 K8S笔记-服务访问之 IP&Port&Endpoint辨析
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)