认识K8S

news2025/1/11 17:14:59

K8S

K8S 的全称为 Kubernetes (K12345678S)

是一个跨主机容器编排工具

作用

用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。 可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。

由来

K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。

K8S特点

弹性伸缩:Kubernetes 可以自动扩展和收缩容器,根据负载进行自动调整。

自动容器部署和管理:Kubernetes可以自动化容器部署和管理,无需手动干预

容器编排:Kubernetes 支持多层容器编排,使得容器的关系更加复杂和灵活。

负载均衡:Kubernetes 可以在多个节点上自动分配负载,实现负载均衡。

容器健康检查和自动恢复:kubernetes 可以自动检查容器状态,如果发现出现故障可以自动恢复。

容器存储管理:Kubernetes 可以管理容器的存储,包括存储卷、存储卷模板等功能。

K8S 集群架构与组件

K8S 是属于主从设备模型(Master-Slave 架构),即有 Master 节点负责集群的调度、管理和运维,Slave 节点是集群中的运算工作负载节点。 在 K8S 中,主节点一般被称为 Master 节点,而从节点则被称为 Worker Node 节点,每个 Node 都会被 Master 分配一些工作负载。

Master 组件可以在群集中的任何计算机上运行,但建议 Master 节点占据一个独立的服务器。因为 Master 是整个集群的大脑,如果 Master 所在节点宕机或不可用,那么所有的控制命令都将失效。除了 Master,在 K8S 集群中的其他机器被称为 Worker Node 节点,当某个 Node 宕机时,其上的工作负载会被 Master 自动转移到其他节点上去。

架构

K8S有master和worker node 两类节点

master节点

负责K8S集群的管理和资源调度等运维工作

组件
组件作用
apiserver是所有服务请求的同意访问入口
controller-manager控制器管理器,负责管理K8S各种资源对象的开专区;通过apiserver监控整个K8S集群的资源状态,并确保资源始终处于预期的工作状态
scheduler资源调度器,负责POD资源的调度,通过调度算法(预选/优选策略)为要部署的pod选择最合适的node节点
etcdK8S集群的数据库,是一种键值对存储结构的分布式数据库,负责存储K8S集群所有的重要信息,并且只有apiserver拥有访问和读写权限

wocker node节点

负责运行工作负载,即容器应用

组件
组件说明
kubelet接收apiserver发来的请求,创建管理pod和容器,跟容器引擎交互实现对容器生命周期的管理;收集node节点的资源信息和pod的运行状态发送给apiserver
kub-proxy作为service资源的载体,实现对pod的网络代理,负载维护pod集群网络规则和四层代理工作
容器引擎运行管理容器

K8S创建pod资源的工作流程

1.用户通过客户端发送创建pod的请求给apiserver

2.apiserver接收到请求后,会先把请求信息写入到etcd中保存,再找controller-manger根据请求信息的资源预设模板创建pod资源

3.controller-manager通过apiserver找scheduler 调度新创建的pod,schedulert通过调度算法的预选策略和优选策略筛选出最合适的node节点进行调度。

4.scheduler通过apiserver找对应的node节点上的kubelet去创建和管理Pod,kubelet会跟容器引擎交互,来管理Pod及其容器的生命周期。

5.用户还可以通过apiserver在kube-proxy上写入iptable或者ipvs网络规则,创建service资源,实现对Pod集群网络代理。

K8S核心资源对象

Pod

  • 是K8S能够创建和管理的最小的单位,一个Pod里可以包含一个或多个应用容器。

  • 同一个Pod里的容器之间共享网络、存储等资源。通过localhost互相访问

  • 不同的 Pod 之间的容器不能用 localhost 访问,也不能挂载其他 Pod 的数据卷。

Pod控制器

管理在Pod副本的控制器

控制器说明
deployment部署无状态应用,同时也负责reolicaset(维持Pod副本数十种符合预期状态)和Pod(容器化的应用程序)
statefulset部署有状态应用
daemonset在所有node节点上都部署同一种的Pod
job一次性的部署短期任务的Pod(执行完任务后会自动退出的容器应用)
cronjob周期性的部署短期任务的Pod(执行完任务后会自动退出的容器应用)

service

  • 在K8S集群内部,为通过标签选择器相关联的一组Pod提供一个统一的访问入口(clusterIP),只支持四层代理转发

  • service通过标签选择器关联Pod的标签,从而自动发现相关Pod的端口(PodIP:Port)

ingress

  • 作为K8S集群外部的访问入口,可定义ingress规则根据用于请求的域名或URL请求路径转发给指定的service,支持七层代理转发

  • ingress通过配置规则将不同的域名或URL路径关联不同的service资源

K8S资源配置信息

说明
apiversion指定资源对象的在K8S中使用的api接口版本
kind指定资源对象的类型
metadata指定资源对象的元数据信息,比如name指定资源名称、namespace指定命名空间、annotation指定注释、label指定标签
spec指定资源对象的资源配置清单(配置属性) ,比如副本数、镜像、网络模式、存储卷、label selector标签选择器
status资源对象在当前的运行状态信息

label

标签,是 K8S 特色的管理方式,便于分类管理资源对象。

给某个资源对象定义了一个label,就相当于给它打了一个标签

label selector

用于查询和筛选拥有相关标签的资源对象

两种标签选择器:基于等值

annotation

与label类似,但是没有任何匹配和筛选的效果

注释,用作于资源对象的注释信息;还可以在一些特殊的资源对象里用作于设置额外的功能特性

name

资源名称

namespace

命名空间,用于隔离资源名称的。在同一个命名空间中,同类型的资源对象的名称是唯一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1459796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Studio基础(下载安装与简单使用)

1、搭建Android开发平台 1.1 Android Studio 下载地址及版本说明 Android 开发者官网: https://developer.android.com/index.html(全球,需科学上网) https://developer.android.google.cn/index.html(国内&#xff…

【Java程序员面试专栏 数据结构】三 高频面试算法题:栈和队列

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,因为栈和队列这两哥们结构特性比较向对应,所以放到一篇Blog中集中练习 题目题干直接给出对应博客链接,这里只给出简单思路、代码实现、复杂度分析 题目关键字…

详解AT24CXX驱动开发(linux platform tree - i2c应用)

目录 概述 1 认识AT24Cxx 1.1 AT24CXX的特性 1.2 AT24CXX描述 1.2.1 引脚 1.2.2 容量描述 1.2.3 设备地址 1.3 操作时序 1.3.1 写单个字节时序 1.3.2 写page字节时序 1.3.3 读取当前数据时序 1.3.4 随机读取数据 1.3.5 连续读取多个数据 2 驱动开发 2.1 硬件接口…

小清新卡通人物404错误页面源码

小清新卡通人物404错误页面源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 蓝奏云:https://wfr.lanzout.com/i6XbU1olftde

发电机项目 2/19

MQTT 一.MQTT是什么? MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议…

【Python】OpenCV-图片添加水印处理

图片添加水印处理 1. 引言 图像处理中的水印添加是一种常见的操作,用于在图片上叠加一些信息或标识。本文将介绍如何使用OpenCV库在图片上添加水印,并通过详细的代码注释来解释每一步的操作。 2. 代码示例 以下是一个使用OpenCV库的简单代码示例&…

2023年全球前端大技术大会(GMTC北京站2023):核心内容与学习收获(附大会核心PPT下载)

此次峰会是一次内容丰富、有深度和广度的技术盛会。参会者不仅可以了解前端技术的最新发展和未来趋势,还可以与业界专家交流心得,提升自己的技能和能力。同时,此次大会也促进了全球前端社区的交流和合作,推动了前端技术的创新和发…

仪表板展示|DataEase看中国:历年研究生报考数据分析

背景介绍 在信息时代的浪潮中,研究生教育作为培养高层次专业人才的重要通道,不断吸引着广大毕业生和在职人士的关注。今天我们结合2018年~2024年的研究生报考数据,以数字为镜,深入了解近年来研究生培养态势。 本文将…

爬虫在网页抓取的过程中可能会遇到哪些问题?

在网页抓取(爬虫)过程中,开发者可能会遇到多种问题,以下是一些常见问题及其解决方案: 1. IP封锁: 问题:封IP是最常见的问题,抓取的目标网站会识别并封锁频繁请求的IP地址。 解决方案…

C#开发AGV地图编辑软件

C#自己开发AGV地图编辑软件: 1、自由添加和删除站点、停车位、小车、运行路径。 2、编辑得地图以XML文件保存。 3、导入编辑好地图的XML文件。 4、程序都是源码,可以直接在此基础上进行二次开发。 下载链接:https://download.csdn.net/d…

Linux:sed进阶(12)

Linux:shell脚本:基础使用(5)《正则表达式-sed工具》_linux脚本表达式s-CSDN博客https://blog.csdn.net/w14768855/article/details/132347574?ops_request_misc%257B%2522request%255Fid%2522%253A%252217084222871680019707523…

普中51单片机学习(定时器和计数器)

定时器和计数器 51单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器/计数器。定时器/计数器和单片机的CPU是相互独立的。定时器/计数器工作的过程是自动完成的,不需要CPU的参与。51单片机中的定时器/计数器是…

nginx的功能以及运用

nginx与apache的对比 nginx优点 nginx使用场景 编译安装nginx过程 1.先清空opt文件夹 2.关闭防火墙,关闭防护 3 安装依赖包,可以通过本地yum去安装 首先就是挂载,随后切换到配置文件中修改 4本地配置文件配置内容 5 随后安装环境包 yum -y …

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(9)模型优化

模型训练后,就要进行模型优化了。 一般来讲,很简单,优化就是不换模型换参数,或者直接换模型。 换了之后来对比,最后选个最好的。 比如在本案例中,选择LinearRegression后,MSE从22下降到12&am…

LWM(LargeWorldModel)大世界模型-可文字可图片可视频-多模态LargeWorld-详细安装记录

说明 Large World Model(LWM)是一个通用的大环境多模态自回归模型,它利用了一个技术名为RingAttention,通过在大型的多样化视频和图书数据集上的训练,实现了对语言、图像和视频的理解与生成能力。 在github上已有4.2k…

医疗在线问诊小程序:开启数字化医疗新篇章

随着科技的飞速发展,医疗行业正逐步向数字化转型。其中,医疗在线问诊小程序作为一种新型的医疗健康服务模式,为人们提供了更为便捷、高效的医疗咨询服务。本文将探讨医疗在线问诊小程序的发展背景、优势及应用场景,以期为医疗行业…

视频生成模型:构建虚拟世界的模拟器 [译]

原文:Video generation models as world simulators 我们致力于在视频数据上开展生成模型的大规模训练。具体来说,我们针对不同时长、分辨率和宽高比的视频及图像,联合训练了基于文本条件的扩散模型。我们采用了一种 Transformer 架构&#…

第三百五十七回

文章目录 1. 概念介绍2. 使用方法2.1 List2.2 Map2.3 Set 3. 示例代码4. 内容总结 我们在上一章回中介绍了"convert包"相关的内容,本章回中将介绍collection.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的内容是col…

第3.2章:Doris-2.0数据导入——Compaction机制

目录 一、Compaction概述 1.1 LSM-Tree概述 1.2 Compaction概述 1.3 Rowset数据版本 1.4 Compaction优点 1.5 Compaction问题 1.5.1 Compaction速度低 1.5.2 写放大问题 1.6 Compaction调优 1.6.1 业务侧 1.6.2 运维侧 二、Compaction执行方式 2.1 Vertical Com…

【Unity】【VR开发】Unity云同步功能使用心得

【背景】 有时出差,旅行等等也带着电脑,晚上想要继续编辑项目,就需要用到云同步功能。目前实践下来,发现有些内容可以同步,有些内容则是不可以同步的,总结如下。 【如何云同步一个本地项目】 UnityHub的项目面板中有两个选项卡:项目和云端项目。 鼠标挪动到想要云同步…