Есть ли команда фильтра kubectl, чтобы получить PV C - его том - смонтированный в pod-хосте в полях узла? - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь получить pv c, его том и в каком модуле он монтируется и в каком узле он находится.

Есть отдельные команды, как показано ниже

Кому получить PV C и его объем

kubectl get pvc <pvcname>

, затем из PV C я получаю, где он установлен

kubectl describe pvc <pvcname> | grep Mounted

Затем, получив модуль, я нахожу, в каком узле Модуль размещен

 kubectl get pod <pod name> -o wide

Как часто мне нужно это проверять, и при большом количестве PV C, создаваемом конфигурацией PV C, запуск по одному - сложная задача. Может быть сценарий может быть написан. Есть ли какой-либо другой способ, используя фильтр kubectl, я могу получить их одной командой?

В настоящее время я делаю так и нахожу имена узлов, где смонтирован pv c.

pvc_list=$(kubectl get pvc | awk '{print $1}')
pod_list=$(kubectl describe pvc $pvc_list | grep Mounted | awk '{print $NF}')
kubectl get pod $pod_list -o wide

Но мне нужно получить вот так

PVC_name volume Pod_Name Node_Name
PvcTest   voltest  pod1   node1 

Ответы [ 2 ]

2 голосов
/ 12 марта 2020

PV C можно использовать на любом количестве контейнеров, поэтому данная модель не соответствует принципу работы Kubernetes. Конечно, вы можете написать свой собственный скрипт, который игнорирует эту возможность.

1 голос
/ 12 марта 2020

На данный момент я написал сценарий powershell, используя pw sh 7.0. Для будущих читателей я запишу это.

$pvcobj = kubectl get pvc --no-headers |  awk '{print $1,$3}'
$pvc_list = foreach($pvc in $pvcobj){

    $pvc_name = $pvc.split(' ')[0]
    $vol_name = $pvc.split(' ')[1]    
    $pod_name = $(kubectl describe pvc $pvc_name | grep Mounted | awk '{print $NF}')
    $node_name = $(kubectl get pod $pod_name --no-headers -o wide | awk '{print $7}' )

    [pscustomobject]@{
        Pvc = $pvc_name
        Volume = $vol_name
        Pod = $pod_name
        Node = $node_name
    }
}
$pvc_list 

Сохраните его в каком-нибудь файле ps1 и запустите

...