Как я могу проверить состояние узла Kubernetes от самого узла? - PullRequest
0 голосов
/ 19 февраля 2019

На главном узле в кластере Kubernetes я могу запустить kubectl get nodes и посмотреть состояние любого отдельного узла в кластере, так как kubectl может найти сертификат кластера для аутентификации.На моей локальной рабочей станции, при условии, что я правильно настроил авторизацию, я могу сделать то же самое.

Из узлов, которые соединены с мастером Kubernetes , есть ли способ, кроме настройки аутентификациичтобы kubectl работал, чтобы я мог определить, находится ли узел в состоянии Ready или Not Ready?

Я пытаюсь создать некоторые инструменты мониторинга, которые находятся на самих узлах, и я 'я хотел бы избежать настройки учетных записей служб и т. п. просто для проверки состояния узла, в случае, если есть какой-то способ, которым я могу идентифицировать его с помощью kubelet, журналов, файла где-то на узле, команды и т.д ...

1 Ответ

0 голосов
/ 19 февраля 2019

Канонического способа сделать это не существует, один из вариантов - использовать API-интерфейс kubelet.

Kubelet предоставляет API-интерфейс, с которым взаимодействует панель управления, чтобы заставить его запускать модули.По умолчанию он работает на порте 10250, но это API записи и должен быть аутентифицирован.

Однако у кублета также есть флаг --read-only-port, который по умолчанию установлен на порту 10255. Вы можете использовать это дляпроверьте, готов ли кублет, нажав конечную точку healthz.

curl http://<ip>:10255/healthz
ok

Эта конечная точка healthz также доступна на локальном хосте:

curl http://localhost:10248/healthz

Если этого недостаточно, вы можете проверитьдля того, чтобы работающий модуль был доступен, нажав API модуля:

curl http://<ip>:10255/pods
...