1. 背景

使用helm chart 部署redis-ha的时候 pod报错 pod has unbound PersistentVolumeClaims

2. 原因分析

查看了 redis-ha的 charts文件,发现value.yaml 中的storageClassName 取数为空,当storageClassName为空的时候如果没有指定 DefaultStorageClass ,那么是不会分配 pv给 claim的。

3. 说明一下DefaultStorageClass

PVC和PV的绑定是通过StorageClassName进行的。然而如果定义PVC时没有指定StorageClassName呢?这取决与admission插件是否开启了DefaultDefaultStorageClass功能:

如果DefaultDefaultStorageClass功能开启,那么此PVC的StorageClassName就会被指定为DefaultStorageClass。DefaultStorageClass从何处而来呢?原来在定义StorageClass时,可以在Annotation中添加一个键值对:storageclass.kubernetes.io/is-default-class: true,那么此StorageClass就变成默认的StorageClass了。
如果DefaultDefaultStorageClass功能没有开启,那么没有指定StorageClassName的PVC只能被绑定到同样没有指定StorageClassName的PV。
查看了我们环境中的storageclass 定义,发现没有开启DefaultDefaultStorageClass功能。

4. 解决办法

修改chart 文件中的pvc 取值, 让storageClass=现有的storageclass name

创建storageClass(依据class.yaml 和 deployment.yaml )

[kubeadm@server1 dpv]$ kubectl get sc
NAME                  PROVISIONER   RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
managed-nfs-storage   westos/nfs    Delete          Immediate           false                  42m
[kubeadm@server1 dpv]$

修改value.yaml

过一会儿再次查看pod状态 ,已经running

[kubeadm@server1 ~]$ kubectl get pod -n redis
NAME                READY   STATUS    RESTARTS   AGE
redis-ha-server-0   2/2     Running   0          22m
redis-ha-server-1   2/2     Running   0          8m48s

k8s: pod has unbound PersistentVolumeClaims问题解决相关推荐

  1. 【收藏】k8s: pod has unbound PersistentVolumeClaims问题解决

    https://blog.csdn.net/yrx420909/article/details/106127489/

  2. k8s pod has unbound immediate PersistentVolumeClaims

    pod 一直处于Pending 状态 pod has unbound immediate PersistentVolumeClaims kubectl logs nfs-client-provisio ...

  3. k8s :pod has unbound immediate PersistentVolumeClaims

    今天测试pvc与pv绑定 代码如下: PersistentVolume如下: kind: PersistentVolume apiVersion: v1 metadata:name: pv-01nam ...

  4. K8S Pod该如何监控

    背景 由于业务容器化的推进,对K8S上运行的业务,也必须做到向之前物理机/虚拟机上一样,要有完备的监控保障.但是,毕竟K8S不是物理机/虚拟机,由于技术实现方式不同,监控方面也是有一定差别的. Pod ...

  5. k8s pod基础概念

    k8s pod基础概念 Pod基础概念: Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象.一个Pod代表着集群中运行的一个进程.kubernetes中其他大 ...

  6. k8s每天报告服务器状态信息,[工作随笔] 配置 cron 检查 K8s Pod 存活状态以推送钉钉消息...

    背景 前段时间接手了一份维护老系统的任务.该系统使用了早期的 Spring Cloud 全家桶,其中有一个微服务随着时间运行会出现大量 CLOSE_WAIT 状态的 socket 连接以至于堵塞网关, ...

  7. K8s Pod优雅关闭,没你想象的那么简单!

    更新部署服务时,旧的 Pod 会终止,新 Pod 上位.如果在这个部署过程中老 Pod 有一个很长的操作,我们想在这个操作成功完成后杀死这个 pod(优雅关闭),如果无法做到的话,被杀死的 pod 可 ...

  8. 混沌工程之ChaosToolkit使用之一删除K8s POD

    混沌工程之ChaosToolkit使用之一删除K8s POD 1.概述 今天我们来玩一下混沌工程的开源工具chaostoolkit . 它的目标是提供一个免费,开放,社区驱动的工具集以及api. 2. ...

  9. K8S POD无限重启问题

    记录一次K8S POD无限重启 项目在K8S上无限重启 问题排查 发现问题 解决方案 最终成果 项目在K8S上无限重启 项目无限重启,不可用. 问题排查 首先查看k8s描述. kubectl desc ...

最新文章

  1. 概念化学习Django
  2. tuxedo相关概念
  3. 阿里云搭建git mac客户端 2个git账号
  4. 使用Drools 6.0进行部署
  5. 【2019浙江省赛 - B】Element Swapping(思维,数学)
  6. 神龙X-Dragon,这技术“范儿”如何?| 问底中国IT技术演进
  7. where in的sql语句按照指定ID进行排序的解决方法
  8. PHP如何获取文件行数
  9. c语言枪图形,6个变态的C语言Hello World程序[转载]
  10. .bash_profile和.bashrc的什么差别
  11. 获取Java项目根目录
  12. iview“官方“实现的右键菜单
  13. 一个必用的javascript框架:underscore.js - wine的思考 - ITeye技术网站
  14. 外卖红包小程序0基础搭建附教程+源码
  15. 海康威视-网络通讯库错误码
  16. 解决方法:未能加载文件或程序集“Microsoft.Office.Interop.Excel。。
  17. 地砖中间高四边低_客厅棚顶有黑镜在风水里讲怎么样 装修中橱柜里的白色色块用哪个做,怎么施工...
  18. 适用于WordPress网站的12个最佳计算器插件
  19. 红帽子linux lamp,RedHat Linux 9下Lamp配置过程
  20. html5游戏ztype源码,Ztype打字游戏!

热门文章

  1. 【uml】-九种图之活动图(Activity Diagram))
  2. UML设计系列(6):活动图
  3. Node交互式命令行工具开发——自动化文档工具
  4. 2019最新《Python从入门到精通之30天快速学Python教程 》
  5. Java安装教程(windows)
  6. teamviewer存在linux版本_TeamViewer 9发布-在Linux下安装运行
  7. Grbl v1.1版本的编译方法
  8. window时间同步
  9. (24) T-GCN-时间图卷积网络用于交通预测
  10. leetcode 61 旋转链表 c++