textbash脚本显示k8s的pvc使用情况(代码片段)

author author     2022-11-29     603

关键词:

#!/usr/bin/env bash

KUBEAPI=127.0.0.1:8001/api/v1/nodes

function getNodes() 
  curl -s $KUBEAPI | jq '.items[].metadata.name' | sed 's/^"\|"$//g'


function getPVCs() 
  jq -s '[flatten | .[].pods[].volume[]? | select(has("pvcRef")) | '\
'name: .pvcRef.name, capacityBytes, usedBytes, availableBytes, '\
'percentageUsed: (.usedBytes / .capacityBytes * 100)] | sort_by(.name)'


function column() 
  awk ' for (i = 1; i <= NF; i++)  d[NR, i] = $i; w[i] = length($i) > w[i] ? length($i) : w[i]   '\
'END  for (i = 1; i <= NR; i++)  printf("%-*s", w[1], d[i, 1]); for (j = 2; j <= NF; j++ )  printf("%*s", w[j] + 1, d[i, j])  print ""  '


function defaultFormat() 
  awk 'BEGIN  print "PVC 1K-blocks Used Available Use%"  '\
'$2 = $2/1024; $3 = $3/1024; $4 = $4/1024; $5 = sprintf("%.0f%%",$5); print $0'


function humanFormat() 
  awk 'BEGIN  print "PVC Size Used Avail Use%"  '\
'$5 = sprintf("%.0f%%",$5); printf("%s ", $1); system(sprintf("numfmt --to=iec %s %s %s | sed '\''N;N;s/\\n/ /g'\'' | tr -d \\\\n", $2, $3, $4)); print " " $5 '


function format() 
  jq '.[] | "\(.name) \(.capacityBytes) \(.usedBytes) \(.availableBytes) \(.percentageUsed)"' |
    sed 's/^"\|"$//g' |
    $format | column


if [ "$1" == "-h" ]; then
  format=humanFormat
else
  format=defaultFormat
fi

for node in $(getNodes); do
  curl -s 127.0.0.1:8001/api/v1/nodes/$node/proxy/stats/summary
done | getPVCs | format

k8s里pv和pvc(代码片段)

...1.2两种pv的提供方式小结二:查看pv和pvc的定义方式2.1使用explain查看pv的定义方式2.1.1查看pv的定义方式2.1.2查看pv定义的规格2.2使用explain查看pvc的定义方式2.2.1查看pvc的定义方式2.2.2查看pvc的规格三:配置nfs使用pv和pvc3.1配... 查看详情

k8s里pv和pvc(代码片段)

...1.2两种pv的提供方式小结二:查看pv和pvc的定义方式2.1使用explain查看pv的定义方式2.1.1查看pv的定义方式2.1.2查看pv定义的规格2.2使用explain查看pvc的定义方式2.2.1查看pvc的定义方式2.2.2查看pvc的规格三:配置nfs使用pv和pvc3.1配... 查看详情

K8S Cronjob PVC 清理

...bernetesCronJob来进行一些数据处理。在执行处理时,我需要使用外部存储来临时存储数据(因为它对于节点本身来说太大了),所以我使用集群上的StorageClass创建了一个PVC。这反过来又在AWS上动态配置EBS卷,在我的集群上配置PV,... 查看详情

k8s存储pv与pvc使用详解

...前去创建的,不同的存储方式不一样,如果都掌握才可以使用,则很不方便 ;所以在k8s中提供了新的对象资源叫做PV(PersistentVolume)和PVC(PersistentVolumeClaim),更方便用户直接进行使用;二、什么是PV(PersistentVolume)pv俗称持... 查看详情

k8s里pv和pvc(代码片段)

...1.2两种pv的提供方式小结二:查看pv和pvc的定义方式2.1使用explain查看pv的定义方式2.1.1查看pv的定义方式2.1.2查看pv定义的规格2.2使用explain查看pvc的定义方式2.2.1查看pvc的定义方式2.2.2查看pvc的规格三:配置nfs使用pv和pvc3.1配 查看详情

k8s里pv和pvc(代码片段)

...1.2两种pv的提供方式小结二:查看pv和pvc的定义方式2.1使用explain查看pv的定义方式2.1.1查看pv的定义方式2.1.2查看pv定义的规格2.2使用explain查看pvc的定义方式2.2.1查看pvc的定义方式2.2.2查看pvc的规格三:配置nfs使用pv和pvc3.1配 查看详情

精品k8s的存储pv与pvc详解(代码片段)

...VC其实就是用户向kubernetes系统发出的一种资源需求申请。使用了PV和PVC之后,工作可以得到进一步的细分:存储:存储工程师维护PV:kubernetes管理员维护PVC:kubernetes用户维护Task:创建名字为pv-svolume的pvc,指定storageClass为csi-hostpa... 查看详情

23,k8s之pv,pvc

PersistentVolume: PersistenVolume(PV):对存储资源创建和使用的抽象,使得存储作为集群中的资源管理 静态 动态 PersistentVolumeClaim(PVC):让用户不需要关心具体的Volume实现细节 搭建nfs: 客户端和服务端都安装: yuminstall-ynfs-util... 查看详情

k8s存储卷之pv&pvc(代码片段)

...现实。为了能够屏蔽底层存储实现的细节,方便用户使用,kubernetes引入PV和PVC两种资源对象。PV&#x 查看详情

k8s存储卷之pv&pvc(代码片段)

...现实。为了能够屏蔽底层存储实现的细节,方便用户使用,kubernetes引入PV和PVC两种资源对象。PV&#x 查看详情

textbash脚本模板(代码片段)

查看详情

textbash脚本输入密码(代码片段)

查看详情

[k8s系列七]存储-pv、pvc与storageclass

...什么以及它里面的内容,都是由volume的类型来决定的;而使用volume,只需要在pod上指定使用哪种类型的volume,以及mount到容器中的什么位置即可。K8S支持的存储类型如下所示,这里主要介绍HostPath和PersistentVolume。hostPath类型的volum... 查看详情

Microk8s Hostpath FS PVC的使用

】Microk8sHostpathFSPVC的使用【英文标题】:Microk8sHostpathFSUsageofPVC【发布时间】:2021-06-1910:53:41【问题描述】:我正在尝试监控k8s中pod的文件系统使用情况。我正在使用Kubernetes(microk8s)和hostpath持久卷。我和一些生产者一起运行Kafka... 查看详情

k8s的pv/pvc

...rsistentVolume对具体的存储进行配置和分配,而Pods等则可以使用PersistentVolume抽象出来的存储资源,不需要知道集群的存储细节。PersistentVolume和PersistentVolumeClaim类似Pods和Nodes的关系,创建Pods需要消耗一定的Nodes的资源。而PersistentVol... 查看详情

k8s通过rbd使用ceph,pvc在线扩容(代码片段)

总结:1、storageclass必须支持在线扩容2、只能扩容,不能收缩3、根据扩容大小,卷扩容需要一定时间一、查看storageclass是否支持动态扩容[root@k8s-master03~]#kubectlgetstorageclassNAMEPROVISIONERAGEcephfsceph.com/cephfs289drbd(default)kubernetes.io/rbd289d[... 查看详情

使用 AzureFile 创建的 pvc 的备份和还原

】使用AzureFile创建的pvc的备份和还原【英文标题】:BackupandRestoreofapvccreatedusingAzureFile【发布时间】:2021-12-1308:41:50【问题描述】:我使用AzureFileShare为我部署了NodeJS应用程序的pod创建了一个动态PVC。下面是我用来创建pvc的storagecl... 查看详情

k8s的pv/pvc(代码片段)

1、Volume#kubernentes的存储部分第一个介绍了Volume。Volume可以支持local、nfs、cephfs、glusterfs以及各种云计算平台。#官网Volume的配置都是在一个创建pod的yaml文件中,例如apiVersion:v1kind:Podmetadata:name:test-pdspec:containers:-image:k8s.gcr.io/ 查看详情