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

K8S概念及其常见组件和整体架构

1.概念

  • 什么是Kubernetes

    • 官网:Kubernetes 文档 | Kubernetes

    • K8S的本质是一组服务器集群,可以在对应服务器集群的每个节点上运行程序,来对节点中的容器进行管理

    • 类似Master-Work方式,每个服务器上安装特定的K8S组件,就可以形成集群,然后部署对应的应用即可

  • K8S常见的功能

    • 服务发现和负载均衡
      • Kubernetes可以使用DNS名称或自己的IP地址来暴露容器
      • 如果进入容器的流量很大,Kubernetes能够自动实现请求的负载均衡分配网络流量,从而使部署稳定
    • 存储编排
      • Kubernetes允许自动挂载选择的存储系统,例如本地存储、云提供商存储等
    • 自动部署和回滚
      • 可以用K8S自动化部署创建新容器,删除现有容器并将它们的所有资源用于新容器
      • 当版本发布错误,可以立刻回退到之前的版本
    • 自我修复
      • 如果某个容器宕机了,K8S可以快速重新启动新的容器,替换旧的容器
    • 密钥与配置管理
      • K8S允许存储和管理敏感信息,例如密码、OAuth令牌和ssh密钥

2.K8S常见概念组件

  • K8S整体架构,也是Client-Server模型

    • 控制节点Master-Node,负责集群的管理
    • 工作节点Worker-Node,负责为集群提供运行环境
  • K8S常见概念

    • Master

      • 集群控制节点(相当于整个集群的指挥中心),在每个Kubernetes集群里都需要一个Master来负责整个集群的管理和控制
    • Node

      • 除了Master,K8S集群中的其他机器被称为Node节点,Node节点才是Kubernetes集群中的工作负载节点
      • 每个Node节点都会被Master分配一些工作负载(docker容器),Node节点上的docker负责容器的运行
    • Pod

      • Pod是一组容器,在K8S中最小的单位是Pod,一个Pod可以包含多个容器,但通常情况下我们在每个Pod中仅使用一个容器
      • 可以理解成豌豆荚,Pod内的每个容器是一颗颗豌豆
      • 分类
        • 自主创建:直接创建出来的Pod,这种Pod删除后就没有了,也不会自动重建
        • 控制器创建:通过控制器创建的Pod,这类Pod删除了之后还会自动重建
    • Pod Controller

      • 控制器是管理Pod的中间层,只需要告诉Pod控制器,想要创建多少个什么样的Pod,它会创建出满足条件的Pod并确保每一个Pod资源处于用户期望的目标状态。如果Pod在运行中出现故障,它会基于指定策略重新编排Pod
      • 通过它来实现对Pod的管理,比如启动Pod、停止Pod、扩展Pod的数量等等
      • 类型
        • ReplicaSet、Deployment、Horizontal Pod Autoscaler、DaemonSet等
    • Service

      • 在K8S里面,每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失
      • Service(服务)就是用来解决这个问题的,对外服务的统一入口,用于为一组提供服务的Pod抽象一个稳定的网络访问地址
      • 一个Service可以看作一组提供相同服务的Pod的对外访问接口,作用于哪些Pod是通过标签选择器来定义的
    • Label

      • K8S提供了一种机制来为Pod进行分类,那就是Label(标签),同一类Pod会拥有相同的标签
      • Label的具体形式是key-value的标记对,可以在创建资源的时候设置,也可以在后期添加和修改
      • 给某个资源对象定义一个Label,就相当于给它打了一个标签,可以通过Label Selector(标签选择器)查询和筛选拥有哪些Label的资源对象,K8S通过这种方式实现了类似SQL的对象查询机制
    • Label选择器

      • 对应的资源打上标签后,可以使用标签选择器过滤指定的标签
      • 标签选择器目前有两个
        • 基于等值关系:等于、不等于
        • 基于集合关系:属于、不属于、存在
    • NameSpace

      • 可以在一个物理集群上运行多个虚拟集群,这种虚拟集群被称为命名空间,用来隔离Pod的运行环境
      • 同一个命名空间中的资源名称必须唯一
      • NameSpace是不能嵌套的,每一个Kubernetes的资源都只能在一个NameSpace内
      • 命名空间是在多个用户之间划分集群资源的一种方法(通过资源配额)
      • 不必使用多个命名空间来分隔轻微不同的资源,例如同一软件的不同版本,应该使用标签来区分
      • Kubernetes会创建四个初始NameSpace命名空间
        • default:没有指明使用其它命名空间的对象所使用的默认命名空间
        • kube-system Kubernetes:系统创建对象所使用的命名空间
        • kube-public:是自动创建的,命名空间下的资源可以被所有人访问(包括未认证用户)
        • kube-node-lease:集群节点之间的心跳维护
  • 应用分类

    • 有状态应用
      • 不能简单的实现负载均衡的服务,有数据产生的服务,redis、mysql、rabbitMQ等
      • 相关服务需通过一些较复杂的配置才能做到负载均衡
      • 有状态的应用,建议直接在物理机部署,方便维护管理
    • 无状态应用
      • 没有对应业务数据的应用,可以简单的实现负载均衡,复制一个节点即可快速扩容,如SpringCloud中的业务服务
      • 无状态的应用适合部署在K8S中或者容器中

3.K8S整体架构

  • K8S整体架构,也是Client-Server模型

    • 控制节点Master-Node,负责集群的管理
      • apiserver:提供操作K8S集群资源的唯一入口,restful方式请求,并提供认证、授权、访问控制、API注册和发现等
      • scheduler:负责资源调度,按照预定的调度策略,计算将Pod调度到相应的Node节点进行应用部署
      • controller-manager:控制器管理中心,负责维护集群的状态,比如故障检测、滚动更新等,根据调度器的安排通知对应的节点创建Pod
      • etcd:存储中心,是兼具一致性和高可用性的键值数据库,可以作为保存Kubernetes所有集群数据的后台数据库
    • 工作节点Worker-Node,负责为集群提供运行环境
      • Node是Pod真正运行的主机,可以是物理机也可以是虚拟机,Node本质上不是K8S创建的,K8S只是管理Node上的资源,为了管理Pod,每个Node节点上至少需要运行container runtime(Docker)、kubelet和kube-proxy服务
      • kubelet:相当于主节点派到工作节点的一个代表,用于管理本机容器(相当于master节点的化身),负责维护容器的生命周期,也负责Volume(CVI)和网络(CNI)的管理
      • kube-proxy:负责为Service提供cluster内部的服务发现/网络代理/负载均衡等操作,为部署的应用程序提供访问入口,和apiserver是不一样的,后者是操作K8S集群内部
  • 架构图

    在这里插入图片描述

相关文章:

K8S概念及其常见组件和整体架构

1.概念 什么是Kubernetes 官网:Kubernetes 文档 | Kubernetes K8S的本质是一组服务器集群,可以在对应服务器集群的每个节点上运行程序,来对节点中的容器进行管理 类似Master-Work方式,每个服务器上安装特定的K8S组件&#xff0c…...

LabVIEW继电器视觉检测系统

随着制造业的自动化与高精度要求不断提升,传统的人工检测方法逐渐难以满足高效和高精度的需求。特别是在航空航天、医疗设备等高端领域,密封继电器推动杆部件的质量直接影响到设备的性能与可靠性。LabVIEW自动化视觉检测系统,能对推动杆部件进…...

linux操作系统进程

linux操作系统是对下的软硬件进行管理,为了能够对上提供稳定,快速,安全的服务而诞生的软件。 广义上的操作系统是包含搭载在操作系统上的软件和函数库等文件的。 狭义上的操作系统就是操作系统内核,进行进程管理,文件…...

jeecgbootvue2菜单路由配置静态文件夹(public)下的html

需求:想要在菜单配置src/assets/iconfont/chart.html显示页面(目的是打包上线以后运维依然可以修改数据) 官网没有相关数据:菜单配置说明 JeecgBoot 开发文档 看云 问题现象: 我把文件放在src/assets/iconfont/chart.html然后在vue中作为 iframe 的 src 属性&am…...

PHP反序列化原生类字符串逃逸框架反序列化利用

PHP反序列化 概念 序列化的原因:为了解决开发中数据传输和数据解析的一个情况(类似于要发送一个椅子快递,不可能整个椅子打包发送,这是非常不方便的,所以就要对椅子进行序列化处理,让椅子分成很多部分在一起打包发送…...

6.1、属性动画

使用显式动画产生布局更新动画 1.旋转动画 只修改对应的属性 rotate({angle: this.angle}) 即可达到效果 动画效果 对应实现代码 @Entry @Component struct AnimationPage {@State angle:number = 0aboutToAppear() {...

v-model还可以作用于其他表单元素的使用

1、文本输入框 直接双向绑定输入的元素值 初始化默认值为空字符串 2、复选按钮 直接双向绑定输入的元素值 初始化默认值为flase,不选中 3、单选按钮, 1.使用name分组,产生互斥效果。 2.使用value存值, 3再用v-model双向绑定…...

最短路的求解

实验类型:◆验证性实验 ◇综合性实验 ◇设计性实验 实验目的:学会使用Matlab求解最短路。 实验内容:1.熟练运用Floyd算法;2. 熟练运用Dijkstra算法;3.利用Matlab编程实现最短路的计算。 例1:已知无向图…...

四:java 基础知识(4)-- 异常 字符串

目录 1. 异常处理 1.1 什么是异常 1.2 异常的类型 1.2.1 检查异常 1.2.2 运行时异常 1.3 异常的捕获与处理 1.3.1 try-catch 语句 1.3.2 finally 块 1.3.3 throw 和 throws 关键字 1.4 自定义异常 1.5 异常的最佳实践 2. 字符串 2.1 String 类的概述 2.2 字符串的…...

Uniapp 实现app自动检测更新/自动更新功能

实现步骤 配置 manifest.json 在 manifest.json 中设置应用的基本信息,包括 versionName 和 versionCode。 一般默认0.0.1,1. 服务器端接口开发 提供一个 API 接口,返回应用的最新版本信息,版本号、下载链接。客户端检测更新 使…...

7.0、RIP

RIP (Routing Information Protocol) 简介 RIP是由Xerox在20世纪70年代开发的,最初定义在RFC1058中。RIP用两种数据包传输更新:更新和请求,每个有RIP功能的路由器在默认情况下,每隔30s利用UDP520端口向与它直连的网络邻居广播(RIP1)或组播(R…...

C#与C++结构体的交互

C#在和C进行交互时,有时候会需要传递结构体。 做一些总结,避免大家在用的时候踩坑。 一般情况 例如我们在C里定义了一个struct_basic结构体 1 struct struct_basic 2 { 3 WORD value_1; 4 LONG value_2; 5 DWORD value_3; 6 UINT v…...

sql纵表转横表

项目上有一个需求(例子): 用户表 user{ id, name, workCode } id name workCode 1 张三 WC1001 2 李四 WC1002 工作信息表 work{ id, name, workCode, workTimeSun } id name …...

数据采集-Kepware OPCUA 服务器实现

KepserverEX OPC UA server设置 系列文章目录 数据采集-Kepware 安装证书异常处理 目录 KepserverEX OPC UA server设置系列文章目录一、OPC UA(OPC Unified Architecture)二、防火墙的配置三、配置KepserverEX的OPC UA3.1 启用远程连接3.2 启动OPCUA服务器接口 四、管理OPCU…...

初识计算机网络

🌎初识计算机网络 文章目录: 初识计算机网络 计算机网络背景 网络协议       初识协议       制定协议标准的组织或公司       OSI七层模型       操作系统和计算机网络关系       再谈协议 网络传输的基本流程     …...

Oracle 第11章:异常处理

在 Oracle PL/SQL 中,异常处理是一个重要的概念,它用于管理程序执行过程中可能发生的错误或特殊情况。异常可以是系统预定义的,也可以是由用户自定义的。 异常类型与处理机制 PL/SQL 提供了两种类型的异常: 预定义异常&#xf…...

导航栏渐变色iOS

- (void)viewDidLoad {[super viewDidLoad];// 设置导航栏属性self.navigationBar.translucent NO;[self.navigationBar setTitleTextAttributes:{NSForegroundColorAttributeName : [UIColor whiteColor], NSFontAttributeName:[UIFont boldSystemFontOfSize:28]}];// 修复iO…...

mysql读写分离

一、proxysql实现mysql读写分离 二、mycat...

计算机的错误计算(一百四十二)

摘要 本节探讨 MATLAB中 附近数的正弦函数的计算精度问题。 例1. 已知 计算 与 直接贴图吧: 另外, 16位的正确值分别为 -0.3077518861551721e-8 与 0.4106402475009074e-3(ISRealsoft 提供)。 容易看出,MATLAB的…...

利用大模型辅助科研论文写作·第一期|论文写作·24-11-02

小罗碎碎念 从这期推文开始,开一个新的系列——如何利用大语言模型辅助论文写作。 我目前的推文主要都集中于分享已经发表的论文,前期背景积累到一定程度以后,我们要动手做实验然后写自己的论文。如果从头到尾,全都自己写&#xf…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...