15.3 StorageClass和volumeClaimTemplates

news/2024/9/19 18:41:25/ 标签: java, 开发语言, prometheus

本节重点介绍 :

  • 了解pvc和pv的关系
  • 动态创建pvc的模板volumeClaimTemplates
  • 动态的资源供应StorageClass
    • WaitForFirstConsumer 延迟绑定

pvc简介

  • PVC全称是Persistent Volume Claim,是用来描述希望使用什么样的或者说是满足什么条件的存储
  • 开发人员使用这个来描述该容器需要一个什么存储
  • PVC就相当于是容器和PV之间的一个接口

定义pvc

核心参数解析

资源请求(Resources)

  • 描述对存储资源的请求,目前仅支持request.storage的设置,即是存储空间的大小
  • 比如申请8GB的存储空间
  resources: #申请资源,8Gi存储空间requests:storage: 8Gi

访问模式(AccessModes)

  • 用于描述对存储资源的访问权限,与PV设置相同
  accessModes:  #访问模式- ReadWriteOnce

PV选择条件(Selector)

  • 通过对Label Selector的设置,可使PVC对于系统中已存在的各种PV进行筛选。
  • 比如 过滤 release=stable ,environment=dev 的pv
  selector:matchLabels:release: "stable"matchExpressions:- {key: environment, operator: In, values: [dev]}

存储类别(Class)

  • 有设置了该Class的PV才能被系统选出,并与该PVC进行绑定
  • 比如
storageClassName: prometheus-lpv

最后给出一个完整的pvc配置

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: pvc
spec:accessModes:  #访问模式- ReadWriteOnceresources: #申请资源,8Gi存储空间requests:storage: 8GistorageClassName: slow #存储类别selector:matchLabels:release: "stable"matchExpressions:- {key: environment, operator: In, values: [dev]}

volumeClaimTemplates

  • 可看作pvc的模板
  • 根据volumeClaimTemplates创建PVC,指定pvc名称大小,将自动创建pvc,且pvc必须由存储类供应。

prometheus_volumeClaimTemplates_85">比如写出一个prometheus使用的 volumeClaimTemplates

  • 下面的例子代表定一个pvc模板
  • accessModes为 ReadWriteOnce
  • 过滤 设置了storageClassName为prometheus-lpv的pv
  • 请求5GB大小
  volumeClaimTemplates:- metadata:name: prometheus-dataspec:accessModes: [ "ReadWriteOnce" ]storageClassName: "prometheus-lpv"resources:requests:storage: 5Gi

StorageClass简介

  • StorageClass作为对存储资源的抽象定义
  • 对用户设置的PVC申请屏蔽后端存储的细节
  • 一方面减少了用户对存储资源细节的关注
  • 另一方面减少了管理员手工管理PV的工作
  • 由系统自动完成PV的创建和绑定,实现了动态的资源供应

最终效果

  • 用户提交PVC,里面指定存储类型,如果符合我们定义的StorageClass,则会为其自动创建PV并进行绑定。

定义StorageClass

  • StorageClass的定义主要包括名称、后端存储的提供者(privisioner)和后端存储的相关参数配置
  • StorageClass一旦被创建,就无法修改,如需修改,只能删除重建。

prometheusStorageClass_122">定义prometheus存储使用的StorageClass

  • 将下面的内容写入 storage_class.yaml 中,作为prometheus所使用的
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: prometheus-lpv
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
  • 这里的volumeBindingMode: WaitForFirstConsumer很关键,意思就是延迟绑定,
  • 延迟绑定的好处是,POD的调度要参考卷的分布
  • 当开始调度POD的时候看看它要求的PV在哪里,然后就调度到该节点,然后进行PVC的绑定,最后在挂载到POD中
  • 这样就保证了POD所在的节点就一定是PV所在的节点

本节重点介绍 :

  • 了解pvc和pv的关系
  • 动态创建pvc的模板volumeClaimTemplates
  • 动态的资源供应StorageClass
    • WaitForFirstConsumer 延迟绑定

http://www.ppmy.cn/news/1524226.html

相关文章

鸿蒙开发(API 12 Beta6版)【通用属性协议】 网络篇

简介 通用属性协议是GATT(Generic Attribute)的缩写,它是一种用于在蓝牙低功耗设备之间传输数据的协议,定义了一套通用的属性和服务框架。通过GATT协议,蓝牙设备可以向其他设备提供服务,也可以从其他设备获…

目标检测-YOLOv6

YOLOv6 YOLOv6 是 YOLO 系列的一个新版本,相比 YOLOv5 进行了大量的优化与改进。YOLOv6 的设计目标是在提高模型检测精度的同时,进一步优化速度和效率,特别是在推理速度和部署便捷性方面。它采用了更先进的网络架构和优化技巧,在…

TriangleIcon 鸿蒙ArkTS自定义View 实现带颜色的上下箭头

TriangleIcon 鸿蒙ArkTS自定义View 实现带颜色的上下箭头 最近将公司项目中VUE实现的的一个数据看板模块进行了纯血鸿蒙的实现,里面有个效果就是 数据指标上升 一个绿色箭头朝上,数据指标下降一个红色箭头向下 具体的效果可以查看上图, 其中V…

【办公类】大组工会学习(文心一言+Python批量)

背景需求: 每学期要写一份工会的大组政治学习读后感(9月-1月,共5次) 学习内容 9月、10月、11月、12月、1月的学习内容文字稿 在班级里,我擅长电脑工作,所以这种写的工作都包了。 中2班三位老师一共写3篇&…

揭秘蛇形机器人的主动SLAM算法和障碍物避让策略

更多优质内容,请关注公众号:智驾机器人技术前线 1.论文信息 论文标题:An active SLAM with multi-sensor fusion for snake robots based on deep reinforcement learning 作者:Xin Liu, Shuhuan Wen, Yaohua Hu, Fei Han, Hong…

ARM基础---编程模型---ARM汇编

一、编程模型 1.1.数据和指令集 1.数据 ARM 采用的是32位架构。 ARM 约定:Byte : 8 bits Halfword : 16 bits (2 byte)Word : 32 bits (4 byte)Doubleword 64-bits(8byte)(Cortex-A处理器) 2.指令 ARM…

Docker 镜像配置

在 Docker 的使用过程中,拉取镜像是一个常见的操作,但在国内由于网络问题,直接从 Docker Hub 拉取镜像可能会比较慢。为了解决这个问题,我们可以配置 Docker 使用国内镜像源,从而加速镜像的拉取过程。本文将介绍如何配…

若依Ruoyi之智能售货机运营管理系统(新增运营运维工单管理)

idea抽取独立方法快捷键:ctrlaltm TaskDto.java package com.dkd.manage.service.impl;import java.time.Duration; import java.util.List; import java.util.stream.Collectors;import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUti…

数据结构(2)单向链表排序和双向链表操作

一单向链表的插入排序 void insertion_sort_link(link_t* plink) { // 如果链表头为空,直接返回 if(NULL plink->phead) { return; } // 初始化指针,p指向当前已排序部分的最后一个节点 node_t* p plink->phead; // ptemp指向待插入的…

什么是单片机?为什么要学习单片机?

实现目标 1、熟悉单片机定义、特点、应用场景、发展历史等; 2、理解为什么要学习单片机?怎样学习单片机? 一、单片机是什么? 1、定义 单片机是集成在一块(单)芯片上的微型计算机。平时我们把 MCU&#x…

【ES备份和还原索引数据】

文章目录 备份(Snapshot)还原(Restore)注意事项示例 在 Elasticsearch 中,备份和还原索引数据通常通过快照(Snapshot)和恢复(Restore)机制来实现。以下是详细的操作步骤&…

最受欢迎的10款电脑监控软件大揭秘,员工电脑监控软件真心推荐

随着科技的迅猛发展,越来越多的企业和个人开始关注电脑监控软件的使用。这类软件能够帮助企业管理者更好地了解员工的工作状况,提升工作效率,并确保公司数据安全;个人用户也可以利用这些软件监控电脑活动,保护家人尤其…

php返回数据量较大怎么办

当 PHP 返回数据量较大时,可能会导致内存溢出、超时、网络传输慢等问题。以下是一些常见的优化方案,帮助有效处理大数据量返回,确保系统的性能和稳定性: 1. 分页加载数据 问题描述:一次性返回大量数据(例…

Spring Boot3.x 启动自动执行sql脚本

1 引言 某些项目在首次启动时,需要先手动创建数据库表,然后再手动写入初始数据才能正常使用。为了省去这个手动操作过程,我们可以使用Spring Boot启动时执行sql脚本的配置,全自动完成这个过程。 2 配置 具体配置如下&#xff1…

使用 `readResolve` 防止序列化破坏单例模式

单例模式是一种设计模式,其目的是确保一个类只有一个实例,并提供一个全局访问点。在 Java 中,我们常常通过私有化构造方法和提供静态访问方法来实现单例。然而,尽管这些手段可以有效防止类的实例化,反射和序列化依然能…

基于YOLOv8的风力涡轮机表面损坏检测系统

基于YOLOv8的风力涡轮机表面损坏检测系统 (价格85) 包含 [损坏] 1个类 通过PYQT构建UI界面,包含图片检测,视频检测,摄像头实时检测。 (该系统可以根据数据训练出的yolov8的权重文件,运用在其他检测系统上&#x…

【变化检测】基于STANet建筑物(LEVIR-CD)变化检测实战及ONNX推理

主要内容如下: 1、LEVIR-CD数据集介绍及下载 2、运行环境安装 3、STANet模型训练与预测 4、Onnx运行及可视化 运行环境:Python3.8,torch1.12.0cu113 likyoo变化检测源码:https://github.com/likyoo/open-cd 使用情况&#xff1a…

Android调整第三方库PickerView宽高--回忆录

一、效果 // 时间选择implementation com.contrarywind:Android-PickerView:4.1.9 多年前,使用到事件选择器,但是PickerView默认宽度使满屏的,不太符合业务需求,当时为此花了许多时间,最终找到了解决方案,…

为控制器的方法添加必要参数

前言:做这个系统时,要求每次调用接口时要传操作人、操作人电脑ip、菜单id,然后计入log。本来前端读取到然后加入请求头,后端写入log即可。但是老大要求后端也要把控必传参数,避免前端忘记。所以就写了这个。IOperation…

Git创建本地仓库

一、创建本地空仓库 1、创建项目文件夹 创建一个全新的文件夹,在文件夹中右键,就会显示出来以下两项: 2、初始化仓库 点击第二个,就会在此目录进入 git 的命令行,然后在命令行中输入以下指令, git init…