У меня есть 3 узла, на которых работают все виды модулей. Я хотел бы иметь список узлов и модулей, например:

NODE1 POD1
NODE1 POD2
NODE2 POD3
NODE3 POD4

Как это может быть достигнуто, пожалуйста?

Спасибо.

111
testTester 26 Фев 2018 в 10:23

5 ответов

Лучший ответ

Вы можете сделать это с помощью пользовательских столбцов:

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
119
nickgryg 26 Фев 2018 в 09:06

Следующая команда делает более или менее то, что вы хотели. Тем не менее, это больше jq трюк, чем kubectl трюк:

kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .status.podIP'

4
Community 10 Янв 2019 в 06:43

Не совсем так, как вы хотели, потому что это описывает гораздо больше, но вы можете использовать

kubectl describe nodes

Он будет выставлять каждый модуль на узел в кластере со следующей информацией

Пространство имен | Имя | Запросы процессора | Пределы процессора | Запросы памяти | Ограничения памяти

3
Ami Hollander 26 Фев 2018 в 07:30

Вы можете использовать kubectl get pods --all-namespaces для вывода списка всех модулей из всех пространств имен и kubectl get nodes для вывода списка всех узлов.

5
Dina Bogdan 26 Фев 2018 в 07:43

kubectl имеет простой, но полезный расширенный формат вывода, который вы можете использовать, например, kubectl get pod -o wide, поэтому, хотя пользовательские форматы, представленные в других ответах, хороши, это может быть удобный ярлык.

56
Radek 'Goblin' Pieczonka 26 Фев 2018 в 09:15