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

k8s-架构

一、Kubernetes是什么

        编排和调度容器的软件,方便实现服务发现,伸缩自愈等功能。

二、Kubernetes集群架构

一文讲清K8S整体架构 - 知乎

2.1 Master节点(集群控制节点)

        Master节点是集群的控制节点,由API Server、Manager Controller、ETCD、Scheduler四个组件构成。

API Server:唯一操作ETCD入口,提供REST API(包括数据授权,校验,集群状态变更)。模块交互中心,负责Master模块之前,Master与Worker模块之间交互。

Controller Manager:集群级功能,例如复制组件,跟踪Node节点,处理节点故障等等。

ETCD:集群、Pod 等持久话信息存储。

Scheduler:应用组件调度。

2.2 Node节点(容器运行节点)

Kubelet:kubelet主要负责同Container Runtime打交道,并与API Server交互,管理节点上的容器。(Master在Node上的代理,管理容器声明周期。每个节点上都运行一个 kubelet 服务进程,默认监听 10250 端口,接收并执行 master 发来的指令,管理 Pod 及 Pod 中的容器。每个 kubelet 进程会在 API Server 上注册节点自身信息,定期向 master 节点汇报节点的资源使用情况,并通过 cAdvisor 监控节点和容器的资源。)

Kube-Proxy:在Node上实现Pod的网络代理。解决节点上应用的访问问题。

Container Runtime: 运行容器。

三、Pod创建流程

1、用户通过kubectl发起Pod创建请求,API Server接收创建Pod请求,将yaml信息记录到ETCD上。

2、Scheduler通过API Server watch 接口,Scheduler寻找合适Node分配Pod资源,将Pod绑定信息,返回API Server并让其记录到ETCD。

3、API Server 发送Pod信息给kubelet,kubelet操作Container runtime完成Pod容器创建。并返回状态结果记录到ETCD。调用CNI接口给pod创建pod网络,调用CRI接口去启动容器,调用CSI进行存储卷的挂载(网络,容器,存储卷)。

详见如下流程图和时序图展示Pod创建流程

相关文章:

  • 【Docker】Docker镜像结构及自定义镜像,镜像上传仓库使用
  • 【并发编程】synchornized原理
  • 2024年最值得关注的跨境电商平台盘点
  • 老兵(5)
  • AIGC笔记--特征线性调制(FiLM)层的实现
  • Linux上常用网络操作
  • Android面试官爱问的12个自定义View的问题
  • Mysql深度分页优化的一个实践
  • openssl3.2 - 官方demo学习 - signature - rsa_pss_hash.c
  • 芯片设计重要工具—— IBM LSF 分布式高性能计算调度平台
  • #laravel 通过手动安装依赖PHPExcel#
  • python期末:组合数据
  • 【springboot】配置文件入门
  • 链表的常见操作
  • 【设计模式之美】重构(三)之解耦方法论:如何通过封装、抽象、模块化、中间层等解耦代码?
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • create-react-app做的留言板
  • C学习-枚举(九)
  • docker python 配置
  • ES6系统学习----从Apollo Client看解构赋值
  • HTTP那些事
  • JavaScript函数式编程(一)
  • js面向对象
  • leetcode讲解--894. All Possible Full Binary Trees
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 日剧·日综资源集合(建议收藏)
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 用简单代码看卷积组块发展
  • 转载:[译] 内容加速黑科技趣谈
  • 追踪解析 FutureTask 源码
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​Java并发新构件之Exchanger
  • ​queue --- 一个同步的队列类​
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​什么是bug?bug的源头在哪里?
  • # 数据结构
  • (二)c52学习之旅-简单了解单片机
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)fock函数详解
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net core使用ef 6
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET 表达式计算:Expression Evaluator
  • .Net6 Api Swagger配置
  • .NET委托:一个关于C#的睡前故事
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • [ NOI 2001 ] 食物链