Подключение к узлу по SSH
Чтобы подключиться к узлу кластера Managed Service for Kubernetes по SSH:
-
Добавьте публичный ключ в метаинформацию при создании группы узлов Managed Service for Kubernetes.
Примечание
В образах Linux, которые используются на узлах Managed Service for Kubernetes, возможность подключения по протоколу SSH с использованием логина и пароля по умолчанию отключена.
-
Настройте группы безопасности кластера Managed Service for Kubernetes.
Важно
Настройки групп безопасности могут препятствовать подключению к кластеру Managed Service for Kubernetes.
Подробнее см. в разделе Подключение к виртуальной машине по SSH.
Создайте пары ключей SSH
Подготовьте ключи для использования с вашим узлом кластера Managed Service for Kubernetes. Для этого:
-
Откройте терминал.
-
Создайте новый ключ с помощью команды
ssh-keygen
:ssh-keygen -t ed25519
После выполнения команды вам будет предложено указать имена файлов, в которые будут сохранены ключи и ввести пароль для закрытого ключа. По умолчанию используется имя
id_ed25519
, ключи создаются в директории~/.ssh
.Публичная часть ключа будет сохранена в файле с названием
<имя_ключа>.pub
.
-
Запустите
cmd.exe
илиpowershell.exe
. -
Создайте новый ключ с помощью команды
ssh-keygen
. Выполните команду:ssh-keygen -t ed25519
После выполнения команды вам будет предложено указать имя файлов, в которые будут сохранены ключи и ввести пароль для закрытого ключа. По умолчанию используется имя
id_ed25519
, ключи создаются в директорииC:\Users\<имя_пользователя>\.ssh\
.Публичная часть ключа будет сохранена в файле с названием
<имя_ключа>.pub
.
Создайте ключи с помощью приложения PuTTY:
-
Скачайте
и установите PuTTY. -
Убедитесь, что директория, куда вы установили PuTTY, присутствует в
PATH
:- Нажмите правой кнопкой на Мой компьютер. Выберите пункт Свойства.
- В открывшемся окне выберите Дополнительные параметры системы, затем Переменные среды (находится в нижней части окна).
- В разделе Системные переменные найдите
PATH
и нажмите Изменить. - В поле Значение переменной допишите путь к директории, куда вы установили PuTTY.
-
Запустите приложение PuTTYgen.
-
В качестве типа генерируемой пары выберите Ed25519. Нажмите Generate и поводите курсором в поле выше до тех пор, пока не закончится создание ключа.
-
В поле Key passphrase введите надежный пароль. Повторно введите его в поле ниже.
-
Нажмите кнопку Save private key и сохраните закрытый ключ. Никому не сообщайте ключевую фразу от него.
-
Сохраните ключ в текстовом файле одной строкой. Для этого скопируйте открытый ключ из текстового поля в текстовый файл с названием
id_ed25519.pub
.
Приведите публичный ключ к необходимому формату
Управление пользователями и SSH-ключами осуществляется через метаданные, поэтому ключи необходимо передавать в определенном формате.
Файл с публичным ключом создается в таком виде:
ssh-ed25519 AAAAB3NzaC***********lP1ww ed25519-key-20190412
Необходимо привести ключ к формату <имя_пользователя>:ssh-ed25519 <тело_ключа> <имя_пользователя>
, чтобы он выглядел следующим образом:
username:ssh-ed25519 AAAAB3NzaC***********lP1ww username
В одном файле можно передать несколько публичных ключей для доступа разных пользователей:
username:ssh-ed25519 AAAAB3NzaC***********lP1ww username
username2:ssh-ed25519 ONEMOREkey***********avEHw username2
Создайте группу узлов и добавьте публичный ключ
Чтобы создать группу узлов Managed Service for Kubernetes с необходимыми параметрами, воспользуйтесь следующей командой:
yc managed-kubernetes node-group create \
--name <имя_группы_узлов> \
--cluster-name <имя_кластера> \
--fixed-size <количество_узлов_в_группе> \
--network-interface security-group-ids=[<список_групп_безопасности>],subnets=<имя_подсети>,ipv4-address=nat \
--metadata-from-file ssh-keys=<имя_файла_с_публичными_ключами>
Важно
Ключ user-data
не поддерживается для передачи пользовательских данных. Параметры для подключения по ssh необходимо указать в ключе ssh-keys
в метаданных ВМ.
Обновите ключи группы узлов
Чтобы обновить SSH-ключи группы узлов Managed Service for Kubernetes, воспользуйтесь следующей командой:
yc managed-kubernetes node-group add-metadata \
--name <имя_группы_узлов> \
--metadata-from-file ssh-keys=<имя_файла_с_публичными_ключами>
Получите публичный IP-адрес узла
Для подключения необходимо указать публичный IP-адрес узла Managed Service for Kubernetes. Его можно узнать одним из следующих способов.
- Откройте раздел Compute Cloud в каталоге, где создан ваш кластер Managed Service for Kubernetes.
- На панели слева выберите
Группы виртуальных машин. - Нажмите на группу ВМ, имя которой соответствует идентификатору группы узлов Managed Service for Kubernetes.
- В открывшемся окне перейдите на вкладку Список ВМ.
- Нажмите на ВМ, публичный адрес которой хотите узнать.
- Публичный IP-адрес указан в блоке Сеть в строке Публичный IPv4.
-
Узнайте идентификатор группы ВМ, которая соответствует группе узлов Managed Service for Kubernetes.
Необходимый параметр находится в столбце
INSTANCE GROUP ID
.yc managed-kubernetes node-group list
Результат:
+----------------------+----------------------+----------------+----------------------+---------------------+---------+------+ | ID | CLUSTER ID | NAME | INSTANCE GROUP ID | CREATED AT | STATUS | SIZE | +----------------------+----------------------+----------------+----------------------+---------------------+---------+------+ | cat684ojo3ir******** | cata9ertn6tc******** | test-nodegroup | cl17i6943n92******** | 2019-04-12 12:38:35 | RUNNING | 2 | +----------------------+----------------------+----------------+----------------------+---------------------+---------+------+
-
Посмотрите список узлов Managed Service for Kubernetes, которые принадлежат данной группе.
Публичный IP-адрес узла Managed Service for Kubernetes указан в столбце
IP
после символа~
.yc compute instance-group list-instances cl17i6943n92********
Результат:
+----------------------+---------------------------+--------------------------+---------------+----------------+ | INSTANCE ID | NAME | IP | STATUS | STATUS MESSAGE | +----------------------+---------------------------+--------------------------+---------------+----------------+ | ef31h24k03pg******** | cl17i6943n92********-itif | 10.0.0.27~84.201.145.251 | RUNNING [53m] | | | ef37ddhg9i7j******** | cl17i6943n92********-ovah | 10.0.0.22~84.201.149.184 | RUNNING [53m] | | +----------------------+---------------------------+--------------------------+---------------+----------------+
-
Установите kubectl
и настройте его на работу с созданным кластером. -
Выполните команду:
kubectl get nodes -o wide
Результат:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME cl17i6943n92********-itif Ready <none> 31m v1.13.3 10.0.0.27 84.201.145.251 Ubuntu 18.04.1 LTS 4.15.0-29-generic docker://18.6.2 cl17i6943n92********-ovah Ready <none> 31m v1.13.3 10.0.0.22 84.201.149.184 Ubuntu 18.04.1 LTS 4.15.0-29-generic docker://18.6.2
Публичный IP-адрес указан в столбце
EXTERNAL-IP
.
Подключитесь к узлу
Вы можете подключиться к узлу Managed Service for Kubernetes по протоколу SSH, когда он будет запущен (в статусе RUNNING
). Для этого можно использовать утилиту ssh
в Linux и macOS и программу PuTTY
В терминале выполните следующую команду:
ssh <имя_пользователя>@<публичный_IP-адрес_узла>
Если вы подключаетесь к узлу Managed Service for Kubernetes в первый раз, может появиться предупреждение о неизвестном хосте:
The authenticity of host '130.193.40.101 (130.193.40.101)' can't be established.
ECDSA key fingerprint is SHA256:PoaSwqxRc8g6iOXtiH7ayGHpSN0MXwUfWHk********.
Are you sure you want to continue connecting (yes/no)?
Введите в терминале слово yes
и нажмите Enter.
В Windows соединение устанавливается с помощью приложения PuTTY.
- Запустите приложение Pageant.
- Нажмите правой кнопкой мыши на значок Pageant на панели задач.
- В контекстном меню выберите пункт Add key.
- Выберите сгенерированный PuTTY приватный ключ в формате
.ppk
. Если для ключа задан пароль, введите его.
- Запустите приложение PuTTY.
-
В поле Host Name (or IP address) введите публичный IP-адрес ВМ, к которой вы хотите подключиться. Укажите порт
22
и тип соединения SSH. -
Откройте в дереве слева пункт Connection - SSH - Auth.
-
Установите флаг Allow agent forwarding.
-
В поле Private key file for authentication выберите файл с приватным ключом.
-
Вернитесь в меню Sessions. В поле Saved sessions введите любое название для сессии и нажмите кнопку Save. Настройки сессии сохранятся под указанным именем. Вы сможете использовать этот профиль сессии для подключения с помощью Pageant.
-
Нажмите кнопку Open. Если вы подключаетесь к узлу Managed Service for Kubernetes в первый раз, может появиться предупреждение о неизвестном хосте:
Нажмите кнопку Да. Откроется окно терминала с предложением ввести логин пользователя, от имени которого устанавливается соединение. Введите имя пользователя, которое вы указали в файле с публичным ключом и нажмите Enter. Если все настроено верно, будет установлено соединение с сервером.
-
Если вы сохранили профиль сессии в PuTTY, в дальнейшем для установки соединения можно использовать Pageant:
- Нажмите правой кнопкой мыши на значок pageant на панели задач.
- Выберите пункт меню Saved sessions.
- В списке сохраненных сессий выберите нужную сессию.