我尝试使用此脚本来查看 kubernetes 卷的使用情况
k get pods -n elk | jq -s '[flatten | .[].pods[].volume[]? | select(has("pvcRef"))
''{name: .pvcRef.name, capacityBytes, usedBytes, availableBytes, ''percentageUsed: (.usedBytes / .capacityBytes * 100)}]'
得到这个
{name: .pvcRef.name, capacityBytes, usedBytes, availableBytes, percentageUsed: (.usedBytes / .capacityBytes * 100)}]
jq: 1 compile error
我的豆荚
k get pods -n elk
k 获取 pods -n elk
NAME READY STATUS RESTARTS AGE
elasticsearch-master-0 1/1 Running 0 24d
elasticsearch-master-1 1/1 Running 0 24d
filebeat-filebeat-8jdqn 1/1 Running 0 24d
filebeat-filebeat-vl9js 1/1 Running 0 24d
filebeat-filebeat-xx2fm 1/1 Running 0 24d
filebeat-filebeat-zdj5k 1/1 Running 0 22d
kibana-kibana-9f5c6f974-kzzpr 0/1 Running 0 24d
logstash-logstash-0 1/1 Running 26 (19h ago) 24d
then
k describe kibana
给出
Volumes:
kube-api-access-2pizdku:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
和音量
k get pv -n elk
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM
STORAGECLASS REASON AGE
pvc-0462020 30Gi RWO Delete Bound elk/elasticsearch-master-elasticsearch-master-1 default
为什么?
您的
jq
表达式,为了便于阅读而插入了额外的空格:缺少的是过滤器阶段之后的管道符号
select()
。插入它使其在语法上正确:我不知道该表达式在其他所有意义上是否正确,因为我不知道输入应该是什么样子。问题中引用的文本不是 JSON,因此
jq
无法直接将表达式应用于它。