K8s — PVC|PV Terminating State

news2024/10/7 19:24:35

在本文中,我们将讨论PV和PVC一直Terminating的状态。

何时会Terminting?

在以下情况下,资源将处于Terminating状态。

  • 在删除Bounded 状态的PVC之前,删除了对应的PV,PV在删除后是Terminting状态。
  • 删除PVC时,仍有引用了PVC的pod在运行(pods attached to the pvc),删除后PVC是Terminting状态。
    Kubernetes为了防止数据丢失,会保护当前正在使用的PVC和绑定到PVC的PV不会被从系统中删除。这种保护功能是通过Finalizers完成的。Finalizer 是带有命名空间的键,告诉 Kubernetes 等到特定的条件被满足后, 再完全删除被标记为删除的资源。 Finalizer 提醒控制器清理被删除的对象拥有的资源。
    每次创建 PVC 或 PV 时,都会将 Finalizer 附加到我们的资源。
  • Finalizer [kubernetes.io/pv-protection] -> 创建 PV 时
  • Finalizer [kubernetes.io/pvc-protection] -> 创建 PVC 时

Terminating State 终止状态

Terminating State意味着 PVC 和/或 PV 的删除将被推迟,直到它们不再被 pod 使用或绑定到 PVC。

验证

我们将创建一个 PVC 和一个简单的应用程序,以便我们可以验证 Finalizers 并模拟 Terminating state以及如何修复它。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: example-claim
spec:
  storageClassName: longhorn
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
apiVersion: apps/v1
kind: Deployment
metadata:
  name: example-deploy
  #namespace: example
  labels:
    app: example-app
  annotations:
spec:
  selector:
    matchLabels:
      app: example-app
  replicas: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  template:
    metadata:
      labels:
        app: example-app
    spec:
      containers:
      - name: example-app
        image: nginx
        imagePullPolicy: Always
        ports:
        - containerPort: 5000
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: example-claim

验证一下一切是否已启动并正在运行:

 kubectl get pvc --field-selector metadata.name=example-claim

在这里插入图片描述

kubectl get pv | grep -w "default/example-claim"

在这里插入图片描述

# claims associated with pod
kubectl get pods -o custom-columns=POD:.metadata.name,PVC:.spec.volumes[*].persistentVolumeClaim.claimName

在这里插入图片描述
PV PVC pod 的关系如下图:
在这里插入图片描述
在我们模拟Terminating state之前,让我们验证 PVC 和 PV 是否具有我们之前提到的注释 Finalizer。

#Looking for finalizer pv-protection
kubectl get pv pvc-b05c6e74-89b4-4669-8e00-5036f109a487 -o json | jq .metadata.finalizers

在这里插入图片描述

#Looking for finalizer pv-protection
 kubectl get pvc example-claim -o json | jq .metadata.finalizers

在这里插入图片描述
让我们模拟Terminating state:
正如我们之前提到的,如果在 PV 绑定到 PVC ,直接删除PV 将会使PV处于Terminating state。

kubectl delete pv pvc-b05c6e74-89b4-4669-8e00-5036f109a487

在这里插入图片描述
在这里插入图片描述
同时删除 PVC:

kubectl delete pvc example-claim

在这里插入图片描述
在这里插入图片描述
因为仍然有使用 PVC 的pod,所以 PVC 也不会被删除,而是一直处于Terminating state。

删除pod:

kubectl delete pod example-deploy-75bcc94c6d-fftq2
or
kubectl delete deployment example-deploy

在这里插入图片描述
在这里插入图片描述
注意事项:

  • When you delete a statefulset that have a retention policy whenDeleted:delete it will also remove the pods and the PVC.
  • If you persistant volume have a retain policy Delete, when deleting the pvc the bound pv and underlying storage volume will be also deleted.
  • If your PV retain policy is not Delete, you’ll have to remove the PV and storage manually.

不删除依赖项直接删除PV/PVC

如果删除终止 pv 的Finalizers,pvc 将失去 Bound,保持在 Lost 状态,并且可能会丢失数据。

kubectl patch pvc pvc_name -p '{"metadata":{"finalizers":null}}'
or
kubectl patch pv pv_name -p '{"metadata":{"finalizers":null}}'

在这里插入图片描述

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

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

相关文章

使用飞书机器人发送消息与文件

本文默认你已拥有一个机器人,如果没有请点击以下链接创建机器人 检查机器人权限 如果需要跨部门发送消息,检查是否开通跨部门权限 在发布版本时选择作用范围为所有员工 机器人发送消息需要获取以下权限: 通过手机号或邮箱获取用户 ID查看…

ETL的数据挖掘方式

ETL的基本概念 数据抽取(Extraction):从不同源头系统中获取所需数据的步骤。比如从mysql中拿取数据就是一种简单的抽取动作,从API接口拿取数据也是。 数据转换(Transformation):清洗、整合和转…

Flutter可重排的列表控件ReorderableListView详解

文章目录 ReorderableListView 介绍主要属性使用示例注意事项 ReorderableListView 介绍 ReorderableListView 是 Flutter 中一个可重排的列表控件,允许用户通过拖动来改变列表项的顺序。它继承自 ListView,并提供了一些额外的功能来实现重排功能。 主…

应用方案 | DCDC电源管理芯片MC34063A

DCDC电源管理芯片 MC34063A MC34063A 为一单片 DC-DC 变换集成电路,内含温度补偿的参考电压源(1.25V)、比较器、能有效限制电流及控制工作周期的振荡器,驱动器及大电流输出开关管等。外配少量元件,就能组成升压、…

Mysql 学习(十五)redo 日志

redo 日志 什么是redo日志?在说这个之前我们先来想一个场景,在访问磁盘的页面之前,我们会先把页面缓存到Buffer Pool之后,才会访问。写页面的时候也会先将buffer pool中的页面修改之后,然后在某个时机才会刷新到磁盘中…

Centos7 安装mongodb 7.0

官方手册参考: https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-red-hat/ Mongodb支持的版本 安装 MongoDB 社区版 按照以下步骤使用包管理器安装 MongoDB Community Edition yum。 配置包管理系统 ( yum) 创建一个/etc/yum.repos.d/mongodb-o…

uni-app微信小程序上拉加载,下拉刷新

pages.json配置官网链接 onPullDownRefresh、onReachBottom函数跟生命周期同级 data() {return {orderList:[],total: null, //总共多少条数据page: 1,pageSize: 10,} }, onLoad() {}, mounted(){this.getInfo() }, methods:{getInfo(){API.getListxxx().then(res > {const…

sensitive-word 敏感词 违规文字检测

1、快速开始 - JDK1.7- Maven 3.x 2、Maven 引入 <!-- https://mvnrepository.com/artifact/com.github.houbb/sensitive-word --><dependency><groupId>com.github.houbb</groupId><artifactId>sensitive-word</artifactId><version…

【CSS3】CSS3 3D 转换示例 - 3D 旋转木马 ( @keyframes 规则 定义动画 | 为 盒子模型 应用动画 | 开启透视视图 | 设置 3D 呈现样式 )

文章目录 一、3D 导航栏示例 - 核心要点1、需求分析2、HTML 结构section 标签 3、CSS 样式keyframes 规则 定义动画为 盒子模型 应用动画开启透视视图设置 3D 呈现样式鼠标移动到控件上方效果设置 6 个子盒子模型的效果 二、完整代码示例1、代码示例2、展示效果 一、3D 导航栏示…

安全防御第七次作业

拓扑图如图所示&#xff1a; 问题&#xff1a;在FW7和FW8之间建立一条IPSEC通道保证10.0.2.0/24网段 可以正常访问到192.168.1.0/24 注&#xff1a;基础配置我在此省略了 一、NAT配置 FW4&#xff1a; FW6&#xff1a; 二、在FW4上做服务器映射 三、配置IPSEC FW5&#xff…

最大的单入口空闲区域

最大的单入口空闲区域 问题描述输入输出代码实现 问题描述 找到最大的单入口空闲区域。 空闲区域是由连通的’O’组成的区域&#xff0c;位于边界的’O’可以是入口&#xff0c; 单入口空闲区域即有且只有一个位于边界的’O’作为入口的由连通的’O’组成的区域。 如果两个元素…

SpringBoot中定时任务、corn表达式

SpringBoot中定时任务、corn表达式 corn表达式网站&#xff1a;https://cron.qqe2.com/ 方法上加上Scheduled(cron表达式) 启动类上加上EnableScheduling 示例 启动类上 启动类加上EnableScheduling开启定时任务。 SpringBootApplication EnableScheduling public class…

应用方案 | D54123B低功耗漏电保护电路

概 述 A&#xff09;、D54123B是一款高性能 CMOS 漏电保护器专用电路。芯片内部包含稳压电源、放大电路、比较器电路、延时电路、计数器电路、跳闸控制电路及跳闸驱动电路。芯片外围应用有脱扣线圈、压敏电阻、稳压二级管、二级管、电阻、电容等元器件。 B&#xff09;、内部…

Day35:安全开发-JavaEE应用原生反序列化重写方法链条分析触发类类加载

目录 Java-原生使用-序列化&反序列化 Java-安全问题-重写方法&触发方法 Java-安全问题-可控其他类重写方法 思维导图 Java知识点&#xff1a; 功能&#xff1a;数据库操作&#xff0c;文件操作&#xff0c;序列化数据&#xff0c;身份验证&#xff0c;框架开发&…

数据结构顺序表的操作,窗口界面(c语言版)

// 准备头文件 #include <stdio.h> #include <stdlib.h>#define InitSize 10 // 动态顺序表的初始默认长度// 定义C语言的bool变量 #define bool char #define true 1 #define false 0/* 定义数据元素的数据类型 */ typedef int ElemType; // 方便更改// 动态顺…

职场逆袭!如何打造‘黄金简历’

现在的职场&#xff0c;无论是哪个行业都特别卷&#xff0c;想要找到一份满意&#xff0c;不仅要求你要拥有丰富的工作经验&#xff0c;而且还要求你的简历足够精彩&#xff0c;这样才能在一众求职者中脱颖而出&#xff01; 一、希赛老师在线指导 之前&#xff0c;小赛分享了…

从0到1了解工业物联网,只需掌握这七点!

目录 1、什么是工业物联网&#xff1f; 2、为什么需要工业物联网&#xff1f; 3、工业物联网与物联网的区别&#xff1f; 4、工业物联网与工业互联网的区别&#xff1f; 5、工业物联网有哪些典型特征&#xff1f; 6、工业物联网方案架构&#xff1f; 7、工业物联网有哪些…

用了一个select框出现的问题许多问题差不多搞了一个多小时最后还是百度解决了,百度伟大

问题出现 问题描述 select 多选框里的数据问题&#xff0c;我讲获取的数据信息放入框ref(null) 中&#xff0c;将数据返回到返回框里&#xff0c;一直发现存在问题&#xff0c;不能正常显示&#xff0c;百度里一下&#xff0c;发现没有百度到其他问题&#xff0c;最后换了一种…

【网络安全】-数字证书

数字证书 数字证书是互联网通讯中用于标志通讯各方身份信息的一串数字或数据&#xff0c;它为网络应用提供了一种验证通信实体身份的方式。具体来说&#xff0c;数字证书是由权威的证书授权&#xff08;CA&#xff09;中心签发的&#xff0c;包含公开密钥拥有者信息以及公开密…

29个社媒营销经典案例!外贸人速来学习!

今天给大家分享一些比较经典的外贸社媒营销案例&#xff0c;希望对大家有帮助&#xff01; 01 创建重复的内容系列 如果你每天都在为决定要在社交媒体上发布什么内容而焦头烂额&#xff0c;那就创建一些你擅长的重复内容系列和主题。 例如&#xff0c;有人经常分享鼓舞人心的…