K8s — PVC|PV Terminating State

在本文中,我们将讨论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}}'

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python向多个用户发送文字、图片内容邮件和excel附件

话不多说,直接上代码,需要把发件里面的smtp_info替换为自己的信息,其中password是指邮箱在开通POP/SMTP功能后获取的授权码! import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import M…

案例分析篇05:数据库设计相关28个考点(9~16)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12601310.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

web3D三维引擎(Direct3D、OpenGL、UE、U3D、threejs)基础扫盲

Hi,我是贝格前端工场的老司机,本文介绍文web3D的几个引擎,做个基础扫盲,如果还不能解决问题,可以私信我,搞私人订制呦。 三维引擎是指用于创建和渲染三维图形的软件框架。它们通常提供了图形处理、物理模拟…

案例分析篇02:软件架构设计考点之特定领域软件架构、架构评估、架构视图(2024年软考高级系统架构设计师冲刺知识点总结)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12601310.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

2024RKDC,新一代AIOT 处理器RK3576发布 !

触觉智能已成功推出RK3576相关开发板核心板,RK3576采用瑞芯微八核芯片,专为 AI0I设计,可用于平板电脑、AI0T应用程序、电子墨水显示器、Arm PC和汽车电子中。集成独立的6TOPS NPU,支持4K视频编解码,性能定位于RK3588和…

smart-doc 社区 Committer 晋升公告

我们非常荣幸地宣布,经过 PMC 委员会的提名和讨论,社区成员李星志(GitHub ID: netdied)、陈琪(GitHub ID: chenqi146)和李兵(GitHub ID: abing22333)正式晋升为同程旅行 smart-doc 开…

redis概述和安装

1 、redis概述和安装 1.1、安装redis 1. 下载redis2. 地址 : https://download.redis.io/releases/ 3. 选择需要的版本1.2 将 redis 安装包拷贝到 /opt/ 目录 1.3. 解压 tar -zvxf redis-6.2.1.tar.gz1.4. 安装gcc yum install gcc1.5. 进入目录 cd redis-6.2.11.6 编译 …

微信小程序云开发教程——墨刀原型工具入门(素材面板)

引言 作为一个小白,小北要怎么在短时间内快速学会微信小程序原型设计? “时间紧,任务重”,这意味着学习时必须把握微信小程序原型设计中的重点、难点,而非面面俱到。 要在短时间内理解、掌握一个工具的使用&#xf…

“2024成都国际电子信息产业展览会”新西部、新重构、新机遇

随着西部大开发和科技兴国的战略深入实施,四川的经济发展已经取得了令人瞩目的成就。作为西部的核心,四川在能源化工、装备制造、航天科技等产业方面均处于国内领先地位,同时也是全国重要的基础电子装备基地。这一发展背景为2024年成都国际电…

ETL的数据挖掘方式

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

常用云产品连接

阿里云常用云产品 云服务器 阿里云:云服务器ECS_云主机_服务器托管_计算-阿里云 对象存储 阿里云:对象存储 OSS_云存储服务_企业数据管理_存储-阿里云 短信服务 阿里云:短信服务_企业短信营销推广_验证码通知-阿里云 CDN服务 阿里云&…

redis源码分析

是什么 是基于内存(而不是磁盘)的kv(而不是关系型mysql那种)数据库,通过空间换时间 源码分析 跳表skiplist 假设你有个有序链表,你想看某个特定的值是否出现在这个链表中,那你是不是只能遍历一次链表才能知道,时间复杂度为O(n…

如何搭建财务数据运营体系:基于财务五力模型的分析

在当今复杂多变的商业环境中,财务数据作为企业决策的重要参考依据,其运营体系的搭建显得尤为关键。一个健全、高效的财务数据运营体系不仅能够为企业提供准确的财务数据支持,还能帮助企业在激烈的市场竞争中保持领先地位。基于财务五力模型的分析,我们可以从收益力、安定力…

windows server 2019 服务器配置的方法步骤

一、启用远程功能二、测试三、解决多用户登录的问题 一、启用远程功能 右键点击【此电脑】–【属性】,进入“【控制面板\系统和安全\系统】”,点击-【远程设置】(计算机找不到就使用【winE】快捷键) 2、在“远程桌面”下方,点击【允许远程连…

NOIP2018-S-DAY1-3-赛道修建(洛谷P5021)的题解

目录 题目 原题描述: 题目描述 输入格式 输出格式 输入输出样例 主要思路: check: 真正的code: 原题描述: 题目描述 C 城将要举办一系列的赛车比赛。在比赛前,需要在城内修建 条赛道。 C 城一共有 个路…

gitee分支管理,合并冲突

1、gitee展示分支 git branch 2、展示远程分支 git branch -r 3、新建分支 git branch base 4、切换分支 git checkout base 合并冲突 当代码在服务器上被提交了,再在本地提交会提示报错 点击merge

从GPT入门,到R语言基础与作图、回归模型分析、混合效应模型、多元统计分析及结构方程模型、Meta分析、随机森林模型及贝叶斯回归分析综合应用等专题及实战案例

目录 专题一 GPT及大语言模型简介及使用入门 专题二 GPT与R语言基础与作图(ggplot2) 专题三 GPT与R语言回归模型(lm&glm) 专题四 GPT与混合效应模型(lmm&glmm) 专题五 GPT与多元统计分析&…

中国社会科学院与美国杜兰大学金融管理硕士——二月二,抬头皆是惊喜

在繁忙的都市生活中,每个人都在为自己的未来打拼,寻找着属于自己的那片天空。二月二,龙抬头,象征着春天的到来,万物复苏。在这个特殊的日子里,对于那些追求学术与职业双重成就的人来说,&#xf…

【Java常用API】正则表达式的基础使用

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

zabbix5监控tomcat

zabbix tomcat客户端配置 1、配置tomcat catalina.sh文件 CATALINA_OPTS"$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port12345 -Dcom.sun.management.jmxremote.authenticatefalse -Dcom.sun.management.jmxremote.sslfalse -Djav…