当前位置: 首页 > news >正文

【kubernetes】kubernetes各组件的调用关系

目录

          • 1. 说明
          • 2. Kubernetes组件概述
            • 2.1 控制平面组件
            • 2.2 节点组件
          • 3. Kubernetes组件调用关系
          • 4. 示例说明

1. 说明
  • 1.Kubernetes是一个开源的容器编排工具,其各个组件之间存在着复杂的调用关系,共同构建起一个完整的容器编排系统。
  • 2.Kubernetes集群主要由控制平面组件(Control Plane Components)和节点组件(Node Components)组成。
2. Kubernetes组件概述
2.1 控制平面组件
  • 1.kube-apiserver:Kubernetes集群的API服务器,负责处理来自客户端的RESTful API请求,包括创建、更新、删除和查询资源等。
  • 2.etcd:一个高可用的键值存储系统,用于存储Kubernetes集群的所有持久化数据,如Pod的配置、状态等。
  • 3.kube-scheduler:负责根据调度算法和资源需求,将Pod调度到合适的节点上运行。
  • 4.kube-controller-manager:包含多个控制器,用于监控集群状态,并根据集群状态的变化自动调整资源,确保集群始终处于期望的状态。
2.2 节点组件
  • 1.kubelet:在每个节点上运行,负责维护和管理该节点上的Pod,确保Pod按照期望的状态运行。
  • 2.kube-proxy:在每个节点上运行,负责实现Kubernetes集群中的网络代理和负载均衡功能,使得集群内部的Pod可以相互通信以及访问外部网络。
3. Kubernetes组件调用关系
  • 1.客户端发送请求:客户端(如kubectl命令行工具或Kubernetes的Dashboard UI)向kube-apiserver发送RESTful API请求,请求内容可能是创建、更新、删除或查询Kubernetes资源(如Pod、Service等)。
  • 2.API Server处理请求:kube-apiserver接收请求并进行权限验证和身份认证。验证通过后,将请求发送到etcd存储系统中进行持久化存储,并更新集群状态。
  • 3.etcd存储数据:etcd接收来自kube-apiserver的数据,并进行持久化存储。etcd保证了数据的一致性和可靠性,即使集群中的某些节点发生故障,也能从etcd中恢复数据。
  • 4.Controller Manager监测数据变化:kube-controller-manager中的控制器不断监测etcd中数据的变化。当检测到集群状态与期望状态不符时,控制器会自动调整资源,使集群恢复到期望状态。
  • 5.Scheduler调度资源:当有新Pod需要创建时,kube-scheduler会根据调度算法和资源需求,在集群中选择合适的节点进行部署。调度结果会存储到etcd中,并由kubelet在目标节点上执行创建Pod的操作。
  • 6.节点上的Kubelet执行任务:kubelet根据kube-scheduler的调度结果,在节点上创建相应的Pod并运行容器。同时,kubelet还负责监控Pod的状态,确保Pod按照期望的状态运行。
4. 示例说明
  • 1.客户端发送请求:使用kubectl命令行工具向kube-apiserver发送创建Pod的请求,请求内容包含Pod的配置信息(如镜像、端口等)。
  • 2.API Server处理请求:kube-apiserver接收请求并进行验证。验证通过后,将Pod的配置信息存储到etcd中。
  • 3.etcd存储数据:etcd对Pod的配置信息进行持久化存储。
  • 4.Controller Manager监测数据变化:kube-controller-manager监测到etcd中新增了一个Pod的配置信息,并触发相应的控制器来创建Pod。
  • 5.Scheduler调度资源:kube-scheduler根据Pod的资源需求和调度算法,在集群中选择一个合适的节点进行部署。
  • 6.节点上的Kubelet执行任务:目标节点上的kubelet接收到调度结果后,在节点上创建Pod并运行相应的容器。
http://www.lryc.cn/news/490839.html

相关文章:

  • Java-08 深入浅出 MyBatis - 多对多模型 SqlMapConfig 与 Mapper 详细讲解测试
  • Vue.js修饰符
  • 【数据分享】2024年我国省市县三级的住宿服务设施数量(8类住宿设施/Excel/Shp格式)
  • 【含文档】基于.NET的医院医保管理系统(含源码+数据库+lw)
  • c++源码阅读__smart_ptr__正文阅读
  • 图形化界面MySQL(MySQL)(超级详细)
  • 【2024 Optimal Control 16-745】Julia语法
  • Opencv+ROS实现摄像头读取处理画面信息
  • 网络安全,文明上网(2)加强网络安全意识
  • 深度学习实战图像缺陷修复
  • jenkins 2.346.1最后一个支持java8的版本搭建
  • 【数据库原理】创建与维护表,DDL数据定义语言
  • 驾驭Go语言中的不确定性:深入错误处理机制
  • 3D Gaussian Splatting在鱼眼相机中的应用与投影变换
  • 【Unity踩坑】在Mac上安装Cocoapods失败
  • uni-app 认识条件编译,了解多端部署
  • SPA 首屏加载慢的原因及解决方案:结合实际项目的详细讲解
  • vue3+ts el-tabel 搜索组件
  • leetcode 排序算法汇总
  • 【C】错误的变量定义导致sprintf()‌输出错误
  • python基础导包
  • 【含开题报告+文档+PPT+源码】基于SSM的电影数据挖掘与分析可视化系统设计与实现
  • strlwr(arr);的模拟实现(c基础)
  • LCR 002. 二进制求和
  • MySQL-C3P0连数据库报错问题
  • 云计算期中作业:Spark机器学习问题解决
  • 计算机网络socket编程(6)_TCP实网络编程现 Command_server
  • RabbitMQ 集群
  • 从零开始:使用 Spring Boot 开发图书管理系统
  • 速盾:海外服务器使用CDN加速有什么优势?