Ответ
Вопрос, вероятно, касается не количества самих узлов, а количества доступных (allocatable) ресурсов (CPU, памяти) на узлах кластера. Количество узлов и их статус можно посмотреть базовой командой:
kubectl get nodes
Чтобы увидеть детальную информацию о доступных (allocatable) и выделяемых (allocated) ресурсах на каждом узле:
# Компактный и информативный вывод с кастомными колонками
kubectl get nodes -o custom-columns="NAME:.metadata.name,ALLOCATABLE_CPU:.status.allocatable.cpu,ALLOCATABLE_MEM:.status.allocatable.memory,CPU_REQ:.status.allocatable.cpu,CPU_REQ_USED:.status.allocatable.cpu"
# Более полный вариант с использованием JSONPath
kubectl get nodes -o=jsonpath='{range .items[*]}{.metadata.name}{"t"}{.status.allocatable.cpu}{"t"}{.status.allocatable.memory}{"n"}{end}'
# Детальное описание узла, включая разделы Allocatable, Capacity и текущие Pod'ы
kubectl describe node <node-name>
Для получения суммарного количества доступных ресурсов во всем кластере (что полезно для планирования):
# Сумма allocatable CPU по всем узлам (требуется установленный jq)
kubectl get nodes -o json | jq '.items | map(.status.allocatable.cpu | rtrimstr("m") | tonumber) | add'
# Аналогично для памяти
kubectl get nodes -o json | jq '.items | map(.status.allocatable.memory | rtrimstr("Ki") | tonumber) | add'
Практический контекст:
Allocatable– это ресурсы узла, доступные для планирования Pod'ов (общие ресурсы минус резерв под системные демоны и kubelet).Capacity– общие физические ресурсы узла.- Разницу между ними можно увидеть в выводе
kubectl describe node. Мониторинг этих метрик (через Metrics Server и затем Prometheus) критически важен для предотвращения нехватки ресурсов в кластере.