网站首页 > 文章精选 正文
Kubernetes是云原生非常核心的组件,也是大厂经常考察的内容,下面我就全面来详解Kubernetes架构@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
Kubernetes
Kubernetes(常简称为K8s),是一个开源的容器编排平台,由Google设计,含义是舵手、或领航员容器编排系统。
主要解决以下场景:
1.容器编排
容器编排是K8S的核心功能,主要管理:多个容器的部署、扩展、和操作,以及自动处理容器的创建、删除、和重新分配。
2.自动伸缩
自动伸缩是K8S的核心功能,主要是:根据应用程序的负载情况,自动调整容器实例的数量。
比如:(增加、或减少容器数量)、和垂直扩展(调整容器的资源分配,比如:CPU、和内存)等,自动伸缩。
3.自动化管理
Kubernetes简化了容器化应用程序的部署、管理、和操作流程,比如:通过自动化的方式,可以减少人为操作错误...等场景。
4.自愈能力
比如:通过持续监控容器的健康状态,自动重启崩溃的容器,重新调度失败的容器实例...等场景,确保应用程序的高可用性。
这四大核心功能:使Kubernetes成为一个强大且灵活的容器编排平台,能够有效地简化、和自动化容器化应用程序的管理。
Kubernetes架构
Kubernetes的架构,由多个组件组成,如下图所示:
如下图所示:
整体由两部分构成,分别是:Master节点和Worker节点。
master(主节点)
Master节点,负责:整个集群的状态监控、调度、协调、和配置管理,如下:
- 集群管理:Master节点负责整个Kubernetes集群的管理,协调各个工作节点上的资源分配、和应用程序的部署;
- 调度和分配:根据资源需求和策略,决定将容器部署到哪个工作节点上;
- 控制和监控:持续监控集群的状态,确保应用程序按预期运行,自动处理故障、和异常情况;
- 配置存储:以及,存储、和管理集群的配置信息、状态数据、和元数据。
Master节点,会包含如下核心组件,比如:API Server、Control Manager。。。等。
API Server
API Server充当Kubernetes的前端,所有外部命令(如:通过kubectl发出的命令),都会首先到达API Server。
处理所有REST请求(如kubectl命令),并将其转发到相应的组件。
API Server会验证请求的有效性,将其转换为集群的状态变更,并将其保存到etcd中。
Scheduler
Scheduler负责资源调度,根据容器的资源需求和约束条件,决定将容器部署到哪个节点上。
Controller Manager
Controller Manager运行各种控制器,每个控制器都是一个独立的控制循环,持续监听集群的状态,并根据期望状态和实际状态的差异进行调整。
主要控制器包括:
节点控制器:管理节点的生命周期。
复制控制器:确保指定数量的Pod副本在任何时候都在运行。
端点控制器:填充Service和Pod的端点信息。
命名空间控制器:管理命名空间的创建和删除。
etcd
etcd是一个分布式键值存储,存储整个集群的配置信息、元数据和状态数据。
它是Kubernetes集群的数据库,提供一致性和高可用性的数据存储服务。
Work(工作节点)
Node节点是集群中的工作节点,主要解决:
- 运行容器:Worker节点负责运行分配给它的应用程序容器;
- 资源管理:管理、和分配本节点上的计算资源(CPU、内存、存储...等),确保容器高效运行。
- 网络通信:处理容器之间以及容器与外部世界的网络通信;
- 监控和日志记录:持续监控容器的状态并记录日志,帮助诊断、和解决问题。
主要会涉及到如下组件:
Kubelet
Kubelet是Worker节点上的核心代理,它持续监听来自API Server的指令(如:Pod的创建、更新和删除)。
Kubelet根据这些指令管理容器的生命周期,包括:拉取镜像、启动容器、监控运行状况、和处理终止...等。
Kube-proxy
Kube-proxy负责:实现Kubernetes服务的负载均衡、和网络代理。
比如:Kube-proxy配置网络规则(如:iptables或IPVS),以实现服务的负载均衡和路由。
它维护本地的网络规则,将外部请求正确地路由到集群内的相应容器。
容器运行时(如Docker)
Kubernetes支持多种容器运行时,通过CRI(容器运行时接口)与Kubelet进行通信。
常用的容器运行时,包括:Docker、containerd、CRI-O...等。
负责实际的容器操作,如拉取镜像、创建、和启动容器、管理容器生命周期。
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
猜你喜欢
- 2025-04-23 Kubernetes原理深度解析:万字图文全总结!
- 2025-04-23 一站式速查知识总结,助您轻松驾驭容器编排技术(水平扩展控制)
- 2025-04-23 kubectl常用删除命令
- 2025-04-23 Devops实践之minikube部署:单机环境使用k8s
- 2025-04-23 Kubernetes组件及工作原理详解
- 2025-04-23 K8S架构原理详解(图文全面总结)
- 2025-04-23 Kubernetes Kube-Proxy 组件 IPVS 模式工作原理及常用故障排查
- 2025-04-23 K8s核心组件解析:一文读懂它们的作用
- 2025-04-23 k8s service 负载均衡:proxy mode介绍
- 2025-04-23 一起学云原生(3)k8s基础知识总结
- 04-23关于linux coreutils/sort.c源码的延展思考最小堆为什么不用自旋
- 04-23一文精通如何使用二叉树
- 04-23二叉树(Binary Tree)
- 04-23数据结构入门:树(Tree)详细介绍
- 04-23数据结构错题收录(六)
- 04-23Kubernetes原理深度解析:万字图文全总结!
- 04-23一站式速查知识总结,助您轻松驾驭容器编排技术(水平扩展控制)
- 04-23kubectl常用删除命令
- 最近发表
- 标签列表
-
- 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)