У мене 3 вузли, на яких запущені всі види стручків. Я хотів би створити список вузлів і стручків, наприклад:
NODE1 POD1
NODE1 POD2
NODE2 POD3
NODE3 POD4
Як цього можна досягти?
Дякую.
У мене 3 вузли, на яких запущені всі види стручків. Я хотів би створити список вузлів і стручків, наприклад:
NODE1 POD1
NODE1 POD2
NODE2 POD3
NODE3 POD4
Як цього можна досягти?
Дякую.
Відповіді:
Це можна зробити за допомогою спеціальних стовпців :
kubectl get pod -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName --all-namespaces
або просто:
kubectl get pod -o=custom-columns=NODE:.spec.nodeName,NAME:.metadata.name --all-namespaces
kubectl get pod --all-namespaces -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName
| sort
в кінці другої команди, щоб результати групувалися за вузлами.
kubectl get pods -o=wide
kubectl
має простий, але корисний розширений формат виводу, який ви можете використовувати як
kubectl get pod -o wide
тому, хоча користувацькі формати, наведені в інших відповідях, хороші, це може бути зручним ярликом.
kubectl get pod --all-namespaces -o wide
, це дасть усі деталі, включаючи інформацію про вузол. Перерахувати стручки для певного простору імен kubectl get pod -n YOUR_NAMESPACE -o wide
. Сподіваюся, це допомагає.
Ви можете використовувати kubectl get pods --all-namespaces
для переліку всіх стручків з усіх просторів імен та kubectl get nodes
для переліку всіх вузлів.
Наступна команда робить більш-менш те, що ви хотіли. Однак це швидше jq
фокус, ніж kubectl
фокус:
kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .status.podIP'
kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .metadata.name'
Не зовсім так, як ви хотіли, бо він описує набагато більше, але ви можете використовувати
kubectl describe nodes
він виставить кожен стручок на вузол кластера з наступною інформацією
Простір імен | Назва | Запити процесора | Обмеження процесора | Запити пам'яті | Обмеження пам’яті
Це дає вам: "nodeName prostor простору імен pod" у кластері:
kubectl get pods --all-namespaces --output 'jsonpath={range .items[*]}{.spec.nodeName}{" "}{.metadata.namespace}{" "}{.metadata.name}{"\n"}{end}'
kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .metadata.name'