云原生Kubernetes 基本概念和术语

news2025/2/24 22:15:26

一、概述

Kubernetes 中的大部分概念如 Node 、 Pod 、 Replication Controller 、 Service 等都可以看作一
种“资源对象”,几乎所有的资源对象都可以通过 Kubernetes 提供的 kubectl 工具(或者 API 编程调用)执行增、删、改、查等操作并将其保存在 etcd 中持久化存储。

从这个角度来看,Kubernetes 其实是一个高度自动化的资源控制系统,它通过跟踪对比 etcd 库里保存的“资源期望状态”与 当前环境中的“实际资源状态”的差异来实现自动控制和自动纠错的高级功能。

Service 的服务进程目前都基于 Socket 通信方式对外提供服务,比如 Redis、Memcache、MySQL、Web Server,或者是实现了某个具体业务的一个特定的 TCP Server 进程,虽然一个
Service 通常由多个相关的服务进程来提供服务,每个服务进程都有一个独立的 Endpoint
IP+Port)访问点。但 Kubernetes 能够让我们通过 Service(虚拟 Cluster IP +Service Port)连接到指定的 Service 上,有了 Kubernetes 内建的透明负载均衡和故障恢复机制,不管后端有多少服务进程,也不管某个服务进程是否会由于发生故障而重新部署到其他机器,都不会影响到我们
对服务的正常调用。

二、 Kubernetes 集群的两种管理角色:Master 和 Node

1、Master

1.1、master概念

Kubernetes 里的 Master 指的是集群控制节点,每个 Kubernetes 集群里需要有一个 Master节点来负责整个集群的管理和控制,基本上 Kubernetes 的所有控制命令都发给它,它来负责具体的执行过程,我们后面执行的所有命令基本都是在 Master 节点上运行的。 Master 节点通常会占据一个独立的服务器(高可用部署建议用 3 台服务器),其主要原因是它太重要了,是整个集群的“首脑”,如果宕机或者不可用,那么对集群内容器应用的管理都将失效。

1.2、master节点上运行的进程

①、Kubernetes API Server(kube-apiserver)

作用:提供了 HTTP Rest 接口的关键服务进程,是 Kubernetes 里所有资源的增、删、改、查等操作的唯一入口,也是集群控制的入口进程。

②、Kubernetes Controller Manager(kube-controller-manager)

作用:Kubernetes 里所有资源对象的自动化控制中心,可以理解为资源对象的“大总管”。

③、Kubernetes Scheduler(kube-scheduler)

作用:负责资源调度(Pod 调度)的进程,相当于公 交公司的“调度室”。

④、etcd服务

作用:Kubernetes 里的所有资源对象的数据存储位置。

2、Node

2.1、node概念

除了 Master , Kubernetes 集群中的其他机器被称为 Node 节点,Node 节点才是 Kubernetes 集群中的工作负载节点。 每个 Node 都会被 Master 分配一些工作负载( Docker 容器),当某个 Node 宕机时,其上的工作负载会被 Master 自动转移到其他节点上去。

2.2、node节点上运行的进程

①、kubelet

作用:负责 Pod 对应的容器的创建、启停等任务,同时与 Master 节点密切协作,实现集群管理的基本功能。

②、kube-proxy

作用:实现 Kubernetes Service 的通信与负载均衡机制(L4层的负载均衡)的重要组件

③、Docker Engine(docker)

作用:Docker 引擎,负责本机的容器创建和管理工作
 

三、kubernetes实现高效均衡的资源调度策略的方式

node节点可以在运行期间动态的增加到k8s的集群中,前提是这个节点已经完成正确的安装、配置和启动关键进程。在默认情况下,kublet会向master注册自己,这也是k8s推荐的管理方式。node被纳入集群管理范围后,kubelet进程就会定时向master节点汇报自生的状态,例如操作系统、Docker 版本、机器的 CPU 和内存情况,以及当前有哪些 Pod 在运行等。这样Master 可以获知每个 Node 的资源使用情况,并实现高效均衡的资源调度策略。 而某个 Node 超过指定时间不上报信息时,会被 Master 判定为“失联”,Node 的状态被标记为 不可用(Not Ready),随后 Master 会触发“工作负载大转移”的自动流程。
 

四、Pod

1、pod中容器有几种

名称作用
init容器初始化容器环境

pause容器(根容器)

在pod内提供network namespace和存储卷支持
业务/应用容器提供业务运行

2、pod的类型

2.1、普通的Pod

普通的 Pod 一旦被创建,就会被放入到 etcd 中存储,随后会被 Kubernetes Master 调度到某个具体的 Node 上并进行绑定( Binding ),随后该 Pod 被对应的 Node 上的 kubelet 进程实例化成一组相关的 Docker 容器并启动起来。
在默认情况下,当 Pod 里的某个容器停止时, Kubernetes 会自动检测到这个问题并且重新启动这个 Pod (重启 Pod 里的所有容器),如果 Pod 所在的 Node 宕机,则会将这个 Node 上的所有p od 重新调度到其他节点上

2.2、静态的Pod

创建后并不存放在Kubernetes 的 etcd 存储里,而是存放在某个具体的 Node 上的一个具体文件中,并且只在此 Node 上启动运行

五、Replication Controller(RC)

1、replication controller 概念

RC Kubernetes 系统中的核心概念之一,简单来说,它其实是定义了一个期望的场景, 即声明某种 Pod 的副本数量在任意时刻都符合某个预期值。

2、replication controller的组成部分

①、pod期待的副本数

②、用于筛选目标pod的lable selector

③、当pod的副本数小于预期数量时,用于创建新pod的pod模板

3、replication controller的重要性

当我们定义了一个 RC 并提交到 Kubernetes 集群中以后, Master 节点上的 Controller Manager
组件就得到通知,定期巡检系统中当前存活的目标 Pod ,并确保目标 Pod 实例的数量刚好等于
RC 的期望值,如果有过多的 Pod 副本在运行,系统就会停掉一些 Pod ,否则系统就会再自
动创建一些 Pod 。可以说,通过 RC Kubernetes 实现了用户应用集群的高可用性,并且大大减
少了系统管理员在传统 IT 环境中需要完成的许多手工运维工作

六、Label(标签)

1、label 概念

Label Kubernetes 系统中另外一个核心概念。一个 Label 是一个 key=value 的键值对,其中 key value 由用户自己指定。
我们可以通过给指定的资源对象捆绑一个或多个不同的 Label 来实现多维度的资源分组管理功能,以便于灵活、方便地进行资源分配、调度、配置、部署等管理工作。
Label 相当于我们熟悉的“标签”,给某个资源对象定义一个 Label,就相当于给它打了一个标签,随后可以通过 Label Selector (标签选择器)查询和筛选拥有某些 Label 的资源对象,Kubernetes 通过这种方式实现了类似 SQL 的简单又通用的对象查询机制。

七、StatefulSet和Deployment

statefulSet:部署的是有状态的应用

deployment:部署的是无状态的应用

八、Endpoint

         它代表着此 Pod 里的一个服务进程的对外通信地址。一个 Pod 也存在着具有多个Endpoint 的情况,比如当我们把 Tomcat 定义为一个 Pod 时,可以对外暴露管理端口与服务端口这两个  Endpoint,Endpoint实际是( pod IP + container Port )

九、server(服务)

1、概述

Service 也是 Kubernetes 里的最核心的资源对象之一, Kubernetes 里的每个 Service 其实就是
我们经常提起的微服务架构中的一个“微服务”。

2、server 是怎样和后端的Pod副本集群通信的

Service 与其后端 Pod 副本集群之间则是通过 Label Selector 来实现“无缝对接”的。

3、RC(replication controller 副本控制器)对server看来的作用

RC 的作用实际上是保证 Service 的服务能力和服务质量始终处于预期的标准。

4、多个pod副本组成一个集群来提供服务,客户端是怎样访问他们的

前置:
每个 Pod 都会被分配一个单独的 IP 地址,而且每个 Pod 都提供了一个独立的 Endpoint (Pod IP(Cluster IP)+ContainerPort)以被客户端访问,现在多个 Pod 副本组成了一个集群来提供服务
访问方法:
一般的做法是部署一个负载均衡器(软件或硬件),为这组 Pod 开启一个对外的服务端口如 8000 端口,并且将这些 Pod Endpoint 列表加入 8000 端口的转发列表中,客户端就可以通过负载均衡器的对外 IP 地址 +服务端口来访问此服务,而客户端的请求最后会被转发到哪个 Pod ,则由负载均衡器的算法所决定。

十、Volume(存储卷)

1、概念

Volume Pod 中能够被多个容器访问的共享目录。

2、k8s中的volume和docker中的volume的区别

Kubernetes Volume 概念、用途和目的与 Docker Volume 比较类似,但两者不能等价

①、kubernetes 中的 Volume 定义在 Pod上,然后被一个 Pod 里的多个容器挂载到具体的文件目录下。

②、Kubernetes 中的 Volume 与 Pod 的生命周期相同,Pod终止或者重启、volume数据会丢失,而容器的volume和生命周期不相关,当容器终止或者重启时,Volume 中的数据也不会丢失

③、Kubernetes 支持多种类型的 Volume,例如 GlusterFSCeph 等先进的分布式文件系统

十一、Persistent Volume (pv)

PV 可以理解成 Kubernetes 集群中的某个网络存储中对应的一块存储,它与 Volume 很类似。pv作为存储资源,主要包括存储能力、访问模式、回收策略、后端存储类型等关键信息的设置。
 

1、pv的关键配置参数

①、存储能力:描述存储设备具备的能力,目前仅支持对存储空间的设置(storage=xx

②、访问模式:PV 进行访问模式的设置,用于描述用户应用对存储资源的访问的权限

访问模式:

1、ReadWriteOnce(简写为 RWO):读写权限,并且只能被单个 Node 挂载

2、ReadOnlyMany(简写为 ROX):只读权限,允许被多个 Node 挂载

3、ReadWriteMany(简写为 RWX):读写权限,允许被多个 Node 挂载

③、存储类别

④、回收策略

2、PV 生命周期的各个阶段(Phase

PV 在生命周期中,可能处于以下 4 个阶段之一

①、Available:可用状态,还未与某个 PVC 绑定

②、Bound:已与某个 PVC 绑定

③、Released:绑定的 PVC 已经删除,资源已释放,但没有被集群回收

④、Failed:自动资源回收失败

十二、PVC 详解

PVC 作为用户对存储资源的需求申请,主要包括存储空间请求、访问模式、 PV 选择条件
和存储类别等信息的设置

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

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

相关文章

工作中何如来合理分配核心线程数?

文章目录一 回顾1.1 使用线程池的优点1.2 任务类型1.3 IO密集型任务确定线程数1.4 CPU密集型任务确定线程数1.5 混合型任务确定线程数一 回顾 1.1 使用线程池的优点 降低资源消耗:线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源&…

学习笔记-Windows 安全

Windows 安全 注 : 笔记中拓扑图 drawio 源文件在其图片目录下 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. 大纲 漏洞利用 LOL RDP 命令行开启RDP多开连接记录凭据窃取绕过组策略限制绕过本地安全策略限制…

手机浏览器怎么下载视频,第三方手机浏览器下载视频的方法

在我们的手机中,总少不了一款手机浏览器。很多人经常使用手机浏览器看视频,那么如何在网页中将喜欢的视频下载下载下来呢?下面给大家讲解UC浏览器、多御安全浏览器、QQ浏览器下载视频的方法,有需要的朋友可以继续往下看。 UC浏览器…

如何写成高性能的代码(三):巧用稀疏矩阵节省内存占用

稀疏矩阵的概念 一个mn的矩阵是一个由m行n列元素排列成的矩形阵列。矩阵里的元素可以是数字、符号及其他的类型的元素。 一般来说,在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀…

【数据结构】详解顺序表(图解)

目录一、顺序表的概念1.1、静态顺序表1.2、动态顺序表二、接口实现2.1、开辟一个动态顺序表及初始化2.2、顺序表的增容2.3、顺序表的尾插及尾删2.4、顺序表的头插及头删2.5、顺序表在pos处插入及删除数据2.6、顺序表的销毁及打印2.7、顺序表的查找及修改一、顺序表的概念 顺序表…

【linux/docker】解决ORA-28000: the account is locked

项目场景: oracle11g客户端连接失败 问题描述 java.sql.SQLException: ORA-28000: the account is locked 原因分析: 由于oracle 11g 在默认在default概要文件中设置了密码最大错误次数为10,“FAILED_LOGIN_ATTEMPTS10”,密码错误…

单商户商城系统功能拆解25—营销中心—优惠券

单商户商城系统,也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法,例如拼团,秒杀,砍价,包邮…

NumPy数组基础

一、NumPy数组属性 首先我们先了解一下NumPy 数组属性。NumPy 的数组中比较重要 ndarray 对象属性有: 属性说明ndarray.ndim秩,即轴的数量或维度的数量ndarray.shape数组的维度,对于矩阵,n 行 m 列ndarray.size数组元素的总个数…

Python应用开发——串口通信

Python应用开发——串口通信 目录Python应用开发——串口通信前言1 环境搭建2 硬件准备3 代码编写与测试3.1 简单测一下串口收发3.2 补充细节3.3 完善整个收发流程结束语前言 在嵌入式开发中我们经常会用到串口,串口通信简单,使用起来方便,且…

20:访问者模式

1:定义 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 2:结构 访问者模式包含以下主要角色: 抽象访问者(Visitor)角色:定义了对每一个元…

Matlab 高光谱遥感数据处理与混合像元分解

教程从基础、方法、实践三方面对高光谱遥感进行讲解。基础篇,站在学员的角度去理解“高光谱”,用大家能听的懂的语言去讲述高光谱的基本概念和理论,帮助学员深入理解这项技术的底层科学机理。方法篇,将高光谱技术与MATLAB工具结合…

Yolov5:强大到你难以想象──新冠疫情下的口罩检测

初识Yolov5是看到一个视频可以检测街道上所有的行人,并实时框选出来。之后学习了CNN卷积神经网络,在完成一个项目需求时,发现卷积神经网络在切割图像方面仍然不太好用。于是我想到了之前看到的Yolov5,实战后不禁感慨一句&#xff…

50天50个前端小项目(纯html+css+js)第十八天(背景轮播图)

今天要做的是一个轮播图&#xff0c;不过是属于全屏类型的轮播图&#xff0c;先来看看效果&#xff1a; 点击左右按钮能切换背景&#xff0c;达到轮播图效果 来看代码实现部分&#xff0c;首先是html: <!DOCTYPE html> <html lang"en"><head>&…

四大含金量高的算法证书考试

证书考试推荐一、PAT 计算机程序设计能力测试二、CCF CSP认证三、团体程序设计天梯赛四、蓝桥杯大赛一、PAT 计算机程序设计能力测试 官网&#xff1a;PAT 计算机程序设计能力测试 PAT为浙江大学出的一款程序设计的测试网站&#xff0c;分为乙级、甲级、顶级三种&#xff0c;…

【MySQL 第十二天 事务的介绍|InnoDB使用事务】

【MySQL 第十二天 事务的介绍|InnoDB使用事务】【1】mysql事物的介绍【2】mysql事务处理的方法【3】mysql是u用InnoDB使用事务生命不息&#xff0c;学习不止 【1】mysql事物的介绍 atomicity 原子性&#xff1a;所有事情是统一的整体&#xff0c;必须一起执行&#xff0c;或者都…

2022 需求工程综合论述题【太原理工大学】

需求工程考题的最后一个模块 —— 综合论述题&#xff0c;只出一道题&#xff0c;30分&#xff0c;马上要考试了&#xff0c;临时抱佛脚其实还是非常管用的 hhh&#xff0c;简答、选择、填空及材料分析题前面博客已更&#xff0c;重点把下面这两个题看明白&#xff0c;仅供参考…

Real-Time Rendering——18.4 Optimization优化

Once a bottleneck has been located, we want to optimize that stage to boost the performance. In this section we present optimization techniques for the application,geometry, rasterization, and pixel processing stages. 一旦找到瓶颈&#xff0c;我们希望优化该…

Nginx 安全漏洞【CVE-2018-16843、CVE-2018-16844】解决办法

CVE-2018-16843和CVE-2018-16844漏洞影响 1.9.5 和 1.15.5 之间的所有 nginx 版本 解决办法&#xff1a;关闭http/2请求处理和MP4流媒体支持&#xff0c;将Nginx 升级至1.22.1 stable 最新版本。 操作步骤&#xff1a; 1、查看当前版本信息及配置参数&#xff1a; sudo /us…

深度学习入门(十三)前向传播、反向传播和计算图

深度学习入门&#xff08;十三&#xff09;前向传播、反向传播和计算图前言前向传播、反向传播和计算图教材前向传播前向传播计算图反向传播训练神经网络小结前言 核心内容来自博客链接1博客连接2希望大家多多支持作者 本文记录用&#xff0c;防止遗忘 前向传播、反向传播和计…

Android akptool 安装 mac 电脑

在之前&#xff0c;apktool工具包都是一个压缩包&#xff0c;下载后无需安装即可使用。下面我们看一下如何在Mac OS系统下如何安装 apktool工具包。 首先&#xff0c;需要下载下面几个软件或工具&#xff1a; Apktool&#xff1a;http://ibotpeaches.github.io/Apktool/instal…