K8S基础概念

 一、MASTER

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

在Master上运行着以下关键进程:

Kubernetes API Server(kube-apiserver):提供了HTTP Rest接口的关键服务进程,是Kubernetes里所有 资源的增、删、改、查等操作的唯一入口,也是集群控制的入口进程。
Kubernetes Controller Manager(kube-controller-manager):  Kubernetes里所有资源对象的自动化控 制中心,可以将其理解为资源对象的“大总管”。
Kubernetes Scheduler(kube-scheduler):负责资源调度(Pod调度)的进程,相当于公交公司的“调度 室”。
另外,在Master上通常还需要部署etcd服务,因为Kubernetes里的所有资源对象的数据都被保存在etcd中。 

 二、NODE

 与Master一样,  Node可以是一台物理主机,也可以是一台虚拟机。  Node是Kubernetes集群中的工作负载节 点,每个 Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机时,其上的工作负载会被Master自动转移到其他节点上。

在每个Node上都运行着以下关键进程:

kubelet:负责Pod对应的容器的创建、启停等任务,同时与Master密切协作,实现集群管理的基本功能。    
kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件。
Docker Engine(docker): Docker引擎,负责本机的容器创建和管理工作。 

三、POD

Pod是Kubernetes最重要的基本概念,如下图所示是Pod的组成示意图,我们看到每个Pod都有一个特殊的被称为“根容器” 的Pause容器。  Pause容器对应的镜像属于Kubernetes平台的一部分,除了Pause容器,每个Pod 还包含一个或多个紧密相关的用户业务容器。 

四、LABEL

Label(标签)是Kubernetes系统中另外一个核心概念。一个Label是一个key=value的键值对,其中key与value由用户自己指定。Label可以被附加到各种资源对象上,例如Node 、Pod 、Service 、RC等,一个资源对象可 以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上。  Label通常在资源对象定义时确定,也可以在对象创建后动态添加或者删除。

我们可以通过给指定的资源对象捆绑一个或多个不同的Label来实现多维度的资源分组管理功能,以便灵活、方便地进行资源分配、调度、配置、部署等管理工作。例如,部署不同版本的应用到不同的环境中;监控和分析应 用(日志记录、监控、告警)等。一些常用的Label示例如下。

版本标签:  "release":"stable" 、"release":"canary"。
环境标签:  "environment":"dev" 、"environment":"qa" 、"environment":"production"。   架构标签:  "tier":"frontend" 、"tier":"backend" 、"tier":"middleware"。
分区标签:  "partition":"customerA" 、"partition":"customerB"。
质量管控标签:  "track":"daily" 、"track":"weekly"。

五、Deployment

Deployment相对于RC的一个最大升级是我们可以随时知道当前Pod“部署” 的进度。实际上由于一个Pod的创建、调度、绑定节点及在目标Node上启动对应的容器这一完整过程需要一定的时间,所以我们期待系统启动N个 Pod副本的目标状态,实际上是一个连续变化的“部署过程”导致的最终状态。
Deployment的典型使用场景有以下几个:

创建一个Deployment对象来生成对应的Replica Set并完成Pod副本的创建
检查Deployment的状态来看部署动作是否完成(Pod副本数量是否达到预期的值)
更新Deployment以创建新的Pod(比如镜像升级)
如果当前Deployment不稳定,则回滚到一个早先的Deployment版本
暂停Deployment以便于一次性修改多个PodTemplateSpec的配置项,之后再恢复Deployment,进行新的发布
扩展Deployment以应对高负载
查看Deployment的状态,以此作为发布是否成功的指标
清理不再需要的旧版本ReplicaSets

六、Namespace          

 Namespace  (命名空间)是Kubernetes系统中的另一个非常重要的概念,  Namespace在很多情况下用于实现多租户的资源隔离。  

Namespace 通过将集群内部的资源对象“分配”到不同的Namespace中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理

Kubernetes集群在启动后会创建一个名为default的Namespace,通过kubectl可以查看

 七、volume

Volume  (存储卷)是Pod中能够被多个容器访问的共享目录。Kubernetes的Volume概念、用途和目的与Docker的Volume比较类似,但两者不能等价。

首先,Kubernetes中的Volume被定义在Pod上,然后被 一个Pod 里的多个容器挂载到具体的文件目录下;其次,  Kubernetes中的 Volume与Pod的生命周期相同,但与容器的生命 周期不相关,当容器终 止或者重启时,Volume中的数据也不会丢失。最后,Kubernetes支持多种类型的Volume,例如GlusterFS 、Ceph等先进的分布式文件系统。

Volume的使用也比较简单,在大多数情况下,我们先在Pod上声明 一个Volume,然后在容器里引用该Volume并挂载(Mount)到容器里的 某个目录上。

八、Persistent Volume        

Volume是被定义在Pod上的,属于计算资源的一部分,而实际上,网络存储是相对独立于计算资 源而存在的一种实体资源。比如在使用虚拟机的情况下,我们通常会先定义一个网络存储,然后从中 划出一个“ 网盘”并挂接到虚拟机上。  

Persistent Volume( PV)和与之相 关联的Persistent Volume Claim( PVC)也起到了类似的作用。PV可以被理解成Kubernetes集群中的某个网络存储对应的一块存储,它与Volume类似,但有以下区别: 

PV只能是网络存储,不属于任何Node,但可以在每个Node上访问
PV并不是被定义在Pod上的,而是独立于Pod之外定义的

九、ConfigMap    

Kubernetes 中的 ConfigMap 是一种用于存储非敏感配置数据的 API 资源。它可以用来存储应用程序、服务或其他组件所需的配置信息,如环境变量、配置文件、命令行参数等。ConfigMap 提供了一种将配置数据与应用程序分离的机制,使得配置可以在不重新构建镜像的情况下进行修改和管理。

以下是一些关键概念和特性:

配置数据存储:ConfigMap 可以存储键值对形式的配置数据,也可以存储配置文件的内容。

与容器的挂载:ConfigMap 中的配置数据可以通过卷挂载(Volume Mount)的方式,直接注入到容器内部。这使得容器可以访问 ConfigMap 中的配置信息。

应用于 Pod:ConfigMap 可以被多个 Pod 共享,一个 Pod 可以引用一个或多ConfigMap。

与环境变量的关联:ConfigMap 中的配置数据可以被映射到 Pod 的环境变量中,这样应用程序可以直接从环境变量中读取配置。

动态更新:一旦 ConfigMap 中的配置数据发生变化,与之相关联的 Pod 可以自动感知到变化并重新加载配置,无需重启 Pod。

不适用于敏感数据:由于 ConfigMap 存储的数据不加密,因此不适用于存储敏感信息,如密码、密钥等。

使用 ConfigMap 可以有效地管理应用程序的配置,提高了部署的灵活性和可维护性。

十、Service

在 Kubernetes 中,Service 是一种抽象,用于定义一组 Pod 的访问方式。它提供了一种持久的虚拟 IP 地址,可以将请求路由到一组具有相同标签的 Pod。Service 使得应用程序可以通过稳定的方式被其他应用或用户访问,而无需关注后端 Pod 的具体细节。Service服务也是Kubernetes里的核心资源对象之一,Kubernetes里的每个Service其实就是我们经常提起的微服务架构中的一个微服务。

它有以下一些关键概念和特性:

负载均衡:Service 会自动在其背后的一组 Pod 中实现负载均衡。当请求到达 Service 的虚拟 IP 地址时,它会将请求分发到相关联的 Pod 中的一个或多个。
服务发现:通过 Service,其他应用或服务可以轻松地发现和访问您的应用程序。无需知道后端 Pod 的具体 IP 地址,只需要知道 Service 的虚拟 IP 地址即可。
稳定的访问点:Service 提供了一个稳定的访问点,即使 Pod 的 IP 地址发生变化,也不会影响到外部应用程序的访问。
内部和外部服务:Service 可以被配置为 ClusterIP(仅内部可访问)、NodePort(外部和内部都可以访问)或 LoadBalancer(外部可访问,需要云提供商支持)类型,以满足不同场景下的需求。
服务标签:Service 通过标签选择器(Selector)来确定与其关联的后端 Pod。只有具有与 Service 标签选择器匹配的标签的 Pod 才会被 Service 所代理。
端口映射:Service 可以定义多个端口映射,将请求转发 到后端 Pod 的不同端口。

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

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

相关文章

idea2024.1发布,lambda多语句的内联断点,增强spring图标等新特性,你没玩过的全新版本

这里是weihubeats,觉得文章不错可以关注公众号小奏技术 简述 2024-04-04 idea官方宣布发布了 一些重大更新 随后我便下载了你没玩过的全新版本IntelliJ IDEA Ultimeate版本试玩 然后脑子里面想到这个 开玩笑 实际下载完是这样 更新内容 更新的内容比较多 关键亮点主要有如下…

Redis入门到通关之数据结构解析-RedisObject

文章目录 ☃️概述☃️源码 ☃️概述 RedisObject 是 Redis 中表示数据对象的结构体,它是 Redis 数据库中的基本数据类型的抽象。在 Redis 中,所有的数据都被存储为 RedisObject 类型的对象。 RedisObject 结构体定义如下(简化版本&#xf…

MDC搭配ttl

1.MDC 1.简介 MDC 介绍​ MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的Map,可以往其中添加键值对。MDC 中包含的内容可…

CSS实现广告自动轮播

实现原理 该广告轮播功能的实现主要依靠HTML和CSS。HTML负责搭建轮播框架,而CSS则控制样式和动画效果。通过CSS中的关键帧动画(Keyframes),我们可以定义图片在容器内的滚动效果,从而实现轮播功能。 HTML结构 首先&am…

如何搭建线下陪玩系统(本地伴游、多玩圈子)APP小程序H5多端前后端源码交付,支持二开!

一、卡顿的优化方法 1、对陪玩系统源码中流媒体传输的上行进行优化,通过提升推流端的设备性能配置、推流边缘CDN节点就近选择等方式解决音视频数据源流的卡顿。 2、对陪玩系统源码中音视频数据的下载链路进行优化,通过选择更近更优质的CDN边缘节点来减少…

Navicat导入sql文件图文教程

本文使用的MySQL工具为:Navicat.默认已经连接数据库!! 步骤: 1.右键自己的数据库,选择新建数据库. 2.输入数据库名称,字符集选择“utf8”,排序规则选择“ utf8_general_ci”,确定. 3.双击新建好的“数据库”。右键点击“运行SQL文件”。 4.选择本地的s…

linux信号相关概念

signal 信号引入什么是信号?如何产生信号?通过按键产生信号调用系统函数向进程发信号系统调用函数发送信号的流程: 由软件条件产生信号软件发送信号的流程: 硬件异常产生信号硬件异常的流程: Deliver、Pending、Block概念信号在内…

Vue 查看真实请求地址

当你在项目中配置了proxy代理,前端在浏览器开发调试的时候,是看不到真是的请求地址的。 这时候,后端要说话了:你这连的是我的地址吗?网络里这显示的也不对吧~ 前端: 额、不是在这里看的。既然你不相信我,…

替代普通塑料吸头的PFA移液吸头

目前市场上的规格:0.01ml、0.05ml、0.1ml、0.2ml、0.5ml、1ml、2ml、5ml、10ml等均可定制加工PFA材质枪头,可以适配市场上大部分移液枪,普兰德,大龙,赛默飞,赛多利斯,力辰、吉尔森,瑞…

K8S哲学 - probe 探针

探针分类: liveness probe readiness probe startup probe Liveness Probe:用于检查容器是否还在运行。如果 Liveness Probe 失败,Kubernetes 会杀死容器,然后根据你的重启策略来决定是否重新启动容器。常见的做法是使用与 Readin…

error解决expression before ‘static‘

问题现象 报警如下 跳转到提示第125行,但是这行明显是没有问题的。 问题分析 经过排查可以看到,是120行的末尾\在S32DS编译器里面被认为是“接下一行”的意思,120行注释掉之后,后面的121行、122行、123行均被注释掉,…

2024年3月 青少年软件编程(图形化) 等级考试试卷(一级)

2024.3青少年软件编程(图形化) 等级考试试卷(一级) 一、 单选题(共 25 题, 共 50 分) 1.单击下列哪个按钮, 能够让舞台变为“全屏模式” ? ( ) A. B. C. D. 标准答案&am…

Redis系列3:高可用之主从架构

1 主从复制介绍 上一篇《Redis系列2:数据持久化提高可用性》中,我们介绍了Redis中的数据持久化技术,包括 RDB快照 和 AOF日志 。有了这两个利器,我们再也不用担心机器宕机,数据丢失了。 但是持久化技术只是解决了Redi…

Redis进阶——相互关注Feed流推送

目录 关注和取消关注业务需求实现步骤效果如下 共同关注业务需求实现步骤效果如下 Feed流实现方案Feed流简介三种Timeline方式三种模式对比 推送到粉丝收件箱业务需求Feed流的滚动分页 实现分页查询收件箱业务需求具体步骤如下 关注和取消关注 业务需求 当我们进入到笔记详情…

如何用C++写一个日期计算器

目录 前言 代码的布局 设计数据 方法声明 方法的实现 获取某年某月的天数 *全缺省的构造函数 * 拷贝构造函数 *赋值运算符重载 *析构函数 日期天数 日期天数 日期-天数 日期-天数 前置 后置 后置-- 前置-- 实现比较大小运算符重载思路 >运算符重载 运算…

互联网通信原理

互联网通信原理 ISO/OSI(开放系统互连)的七层模型 注意事项 上三层是为用户提供服务的,下四层负责实际数据传输下四层的传输单位 传输层(数据段)、网络层(数据包)、数据链路层(数据帧)、物理层…

图文教程 | 2024年最新Typora激活使用教程合集

前言 汇总一下网上的三种方法。 📢博客主页:程序源⠀-CSDN博客 📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正! 关于安装教程:http://t.csdnimg.cn/SCIQ8http://t.csdnimg.cn/SCIQ8自行跳转安装 一…

35. 【Android教程】视频页面:ViewPager

ViewPager 是一种可以让用户通过左右滑动来切换页面的控件,通过它我们可以展示超过屏幕尺寸大小的内容,在某种程度上它可以说是实现多页面的最佳方式,同时 ViewPager 还支持任意动态的添加/删除页面。比如我们可以将不同的类别的内容分别放在…

java 创建和请求sse服务

主要依赖 <!--spring-boot父工程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.2.RELEASE</version></parent><dependency><gro…

AOP基础

一、AOP概述 AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;其实就是面向特定方法编程。 使用场景&#xff1a;①记录操作日志&#xff1b;②权限控制&#xff1b;③事务管理等。 优势&#xff1a;①代码无侵入…