Я хочу (программно) получить список всех планируемых узлов в моем кластере kubernetes.Как определить планируемые узлы в Kubernetes
Я довольно уверен, что это раньше было возможно, глядя на .spec.unschedulable
в полном выходе kubectl get nodes
(с помощью JSON или шаблон вывода), но теперь, кажется, что эта информация находится внутри scheduler.alpha.kubernetes.io/taints
ключа, который гораздо сложнее разобрать и просто не чувствует себя в нужном месте.
Есть ли другой способ найти эту информацию? Мне что-то не хватает? В настоящее время я использую версию 1.5.1.
UPDATE: Я могу почти попасть с некоторыми Go шаблонами:
$ kubectl get nodes -o go-template='{{range .items}}{{with $x := index .metadata.annotations "scheduler.alpha.kubernetes.io/taints"}}{{.}}{{end}}{{end}}'
[{"key":"dedicated","value":"master","effect":"NoSchedule"}]
Но это оставляет меня с сгустком JSON, что я не могу разобрать в шаблоне, и я до сих пор инвертировать результаты и получить имя узла.
ОБНОВЛЕНИЕ 2: По-видимому, незапланированные узлы должны иметь .spec.unschedulable
комплект. Кажется, это не всегда так; не уверен, что это связано с ошибкой или недоразумением с моей стороны.
Мне это известно. Согласно моему обновлению, у меня был незапланированный узел без установки '.spec.unschedulable'. У узла действительно было «taint», чтобы сказать, что оно было несложным, и на узел не могли быть запланированы стручки. В настоящее время я подозреваю, что это просто ошибка. –