Evolution
Тема интерфейса

Подключиться к рабочему узлу

При эксплуатации кластера Managed Kubernetes иногда необходимо напрямую подключиться к одному из рабочих узлов. Например, для обслуживания или устранения неполадок.

Напрямую к рабочему узлу можно подключиться как по SSH, так и через Kubernetes API. В этой инструкции описано оба способа.

Подключиться к узлу через Kubernetes API

  1. Получите список узлов:

    kubectl get nodes -o wide

    Примерный результат:

    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
    vm-451f2d74-0628-4927-bb5e-b5ef645abf00 Ready <none> 6m22s v1.32.5 10.94.0.4 <none> Ubuntu 22.04.3 LTS 5.15.0-143-generic containerd://1.7.27
    vm-e8df298f-dc3a-413f-a266-2db43b25184a Ready <none> 6m13s v1.32.5 10.94.0.3 <none> Ubuntu 22.04.3 LTS 5.15.0-143-generic containerd://1.7.27
    vm-fad0d0b5-239f-4e38-a35a-723e088f7031 Ready <none> 2m32s v1.32.5 10.94.0.5 <none> Ubuntu 22.04.3 LTS 5.15.0-143-generic containerd://1.7.27
  2. Запустите привилегированный контейнер на узле:

    kubectl debug node/<node-name> -it --image=emk8s.cr.cloud.ru/debug

    Где <node-name> — название узла из списка выше, к которому необходимо подключиться.

    Например:

    kubectl debug node/vm-451f2d74-0628-4927-bb5e-b5ef645abf00 -it --image=emk8s.cr.cloud.ru/debug

    Примерный результат:

    Creating debugging pod node-debugger-vm-451f2d74-0628-4927-bb5e-b5ef645abf00-scdl7 with container debugger on node vm-451f2d74-0628-4927-bb5e-b5ef645abf00.
    If you don't see a command prompt, try pressing enter.
    vm-451f2d74-0628-4927-bb5e-b5ef645abf00:/#
  3. Выполните команду:

    chroot /host

Теперь можно работать непосредственно на узле.

Чтобы завершить работу с узлом, выполните команду exit и удалите используемый отладочный под:

kubectl delete pod <pod-name>

Где <pod-name> — название отладочного пода. В примере выше — это node-debugger-vm-451f2d74-0628-4927-bb5e-b5ef645abf00-scdl7.

Подключиться к узлу по SSH

  1. В личном кабинете перейдите к группе узлов, где располагается узел.

  2. В разделе Информация проверьте, что для группы узлов, в которую входит узел:

    • Указаны параметры авторизации пользователя — имя пользователя и публичная часть SSH-ключа.

      Параметры авторизации пользователя можно указать только при создании группы узлов.

    • Выбрана группа безопасности с правилами входящего трафика:

      1. Протокол — TCP.

      2. Порт — 9022.

      3. Тип источника — IP-адрес.

      4. Источник — 0.0.0.0/0.

    Если при создании группы узлов не была выбрана нужная группа безопасности, то назначить ее можно позже — непосредственно на виртуальную машину узла.

  3. На панели слева выберите Узлы.

  4. В строке с названием узла нажмите на название виртуальной машины.

  5. На панели слева выберите Сетевые параметры.

  6. Нажмите Горизонтальное меню и выберите Назначить публичный IP.

  7. Настройте параметры и нажмите Назначить.

    Внимание

    Для рабочего узла доступен только плавающий IP, прямой IP получить нельзя.

  8. В терминале или PowerShell выполните команду:

    ssh -p9022 <username>@<public_ip_of_worker_node>

    Где:

    • <username> — имя пользователя, которое указали при создании рабочего узла в разделе Авторизация пользователя.

    • <public_ip_of_worker_node> — публичный IP виртуальной машины.

Теперь можно выполнять обслуживание рабочего узла.