Управление узлами кластера
Данный раздел содержит инструкции по просмотру состояния узлов кластера, добавлению узлов к кластеру и их перезапуску.
Просмотр состояния узлов кластера
С помощью командной строки
Чтобы просмотреть состояние узлов кластера, выполните следующую команду:
kubectl get nodes -o wide
Пример списка узлов кластера
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
siem-master01.k8s.dev.rvision.local Ready control-plane 140d v1.26.3 10.99.57.12 <none> RED OS MUROM (7.3.2) 5.15.131-1.el7.3.x86_64 containerd://1.7.0
siem-worker01.k8s.dev.rvision.local Ready <none> 140d v1.26.3 10.99.57.13 <none> RED OS MUROM (7.3.2) 5.15.131-1.el7.3.x86_64 containerd://1.7.0
siem-worker02.k8s.dev.rvision.local Ready <none> 140d v1.26.3 10.99.57.11 <none> RED OS MUROM (7.3.2) 5.15.131-1.el7.3.x86_64 containerd://1.7.0
siem-worker03.k8s.dev.rvision.local Ready <none> 140d v1.26.3 10.99.57.10 <none> RED OS MUROM (7.3.2) 5.15.131-1.el7.3.x86_64 containerd://1.7.0
Состояние узлов отображается в столбце STATUS
. Возможные статусы:
-
Ready
: узел исправен и готов к размещению подов. -
NotReady
: узел столкнулся с некоторой проблемой, и на нем нельзя разместить под. -
SchedulingDisabled
: на узле отключено создание новых подов. -
Unknown
: узел недоступен для работы.
С помощью Lens
Чтобы просмотреть состояние узлов кластера:
-
Подключитесь к кластеру с помощью Lens.
-
Перейдите в раздел Nodes. В правой части экрана отобразится таблица узлов кластера. Состояние узлов отобразится в столбце Conditions.
Также состояние узлов кластера можно посмотреть в разделе SIEM Инструменты → Мониторинг. |
Добавление узла к кластеру
Добавление узла к кластеру производится в два этапа:
-
Подготовительные работы на узле, добавляемом в кластер:
-
Установите утилиты, требуемые для подключения узла к кластеру:
sudo dnf install bash-completion vim telnet chrony jq htop tcpdump zip unzip rsync ebtables ethtool conntrack -y
-
Настройте синхронизацию времени с сервером времени:
sudo timedatectl set-ntp true sudo sed -i "/^server /d" /etc/chrony.conf sudo bash -c 'echo "server <time_server>" >> /etc/chrony.conf' sudo systemctl enable --now chronyd sudo systemctl restart chronyd sudo systemctl status chronyd chronyc sources
Здесь:
-
<time_server>
— адрес корпоративного сервера времени (например,ntp.rvision.local
).
-
-
-
Работы на управляющем узле:
-
Внесите в файл
inventory/offline-cluster/inventory.ini
информацию о новом узле:sudo nano inventory/offline-cluster/inventory.ini
Внесите информацию об узле в группу
all
и в группу, для которой он предназначен. В качестве образца синтаксиса используйте поля инвентарных данных уже имеющихся в этом файле узлов. -
Запустите Ansible-плейбуки для добавления узла в кластер:
sudo chmod -R 755 inventory/offline-cluster/credentials sudo chmod 777 inventory/offline-cluster/credentials ansible-playbook -uuser -b -i inventory/offline-cluster/inventory.ini sysprep.yml --extra-vars archive_directory=../../.. --extra-vars sysprep_name=sys-prep-redos ansible-playbook -uuser -b -i inventory/offline-cluster/inventory.ini cluster.yml cd ~
-
Отключите offline-репозитории:
sudo dnf config-manager --set-disabled deps-offline sudo dnf config-manager --set-enabled base updates
-
Проверьте список узлов в кластере:
sudo kubectl get node
-
Проверьте, какой набор приложений был развернут с помощью
kubespray
:sudo kubectl get po -A
-
Перезапуск узла кластера
При выполнении работ по обслуживанию узла кластера (например, обновлению ОС или добавлению вычислительных ресурсов на хост) может понадобиться перезапуск узла. Чтобы сделать это, выполните на узле следующие команды:
-
Переведите узел в
drain
-режим:kubectl drain <node_name> --ignore-daemonsets
Здесь:
-
<node_name>
— имя узла (например,siem-worker05.k8s.dev.rvision.local
).Операция drain
позволяет перераспределить все поды с узла. В процессе выполненияdrain
узел помечается какunschedulable
. Это предотвращает появление на нем новых подов. Затемdrain
начинает перемещать поды с узла и завершает работу контейнеров, которые на данный момент запущены на узле, отправляя сигналTERM
контейнерам в поде.
-
-
Остановите сервисы
kubelet
иcontainerd
:sudo systemctl stop kubelet sudo systemctl stop containerd
-
Произведите обслуживание узла.
-
Повторно запустите сервисы
kubelet
иcontainerd
:sudo systemctl start containerd sudo systemctl start kubelet
-
Сделайте узел вновь назначаемым, чтобы на нем появлялись поды:
kubectl uncordon <node_name> kubectl get nodes -o wide
Здесь:
-
<node_name>
— имя узла (например,siem-worker05.k8s.dev.rvision.local
).
-