Переключение сетевого соединения при пересоздании кластера Yandex Data Processing
Пересоздание кластера может понадобиться для обновления программного обеспечения, переноса нагрузки между кластерами, перемещения кластеров между зонами доступности и других операций.
В примере описана настройка DNS для быстрого переключения сетевого трафика на новые FQDN хостов при пересоздании кластера Yandex Data Processing. Для актуального имени хоста-мастера кластера создается сетевой псевдоним (запись CNAME) в сервисе Yandex Cloud DNS. При пересоздании кластера CNAME-запись изменяется на новое имя хоста-мастера.
Чтобы настроить DNS для кластера Yandex Data Processing:
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Подготовьте инфраструктуру:
-
Создайте сеть с именем
data-proc-network
, при создании выключив опцию Создать подсети. -
В сети
data-proc-network
создайте подсеть со следующими параметрами:- Имя —
data-proc-subnet-a
. - Зона —
ru-central1-a
. - CIDR —
192.168.1.0/24
.
- Имя —
-
Создайте NAT-шлюз и таблицу маршрутизации с именем
data-proc-route-table
в сетиdata-proc-network
. Привяжите таблицу к подсетиdata-proc-subnet-a
. -
В сети
data-proc-network
создайте группу безопасности с именемdata-proc-security-group
и следующими правилами:-
По одному правилу для входящего и исходящего служебного трафика:
- Диапазон портов —
0-65535
. - Протокол —
Любой
. - Источник/Назначение —
Группа безопасности
. - Группа безопасности —
Текущая
.
- Диапазон портов —
-
Правило для исходящего HTTPS-трафика:
- Диапазон портов —
443
. - Протокол —
TCP
. - Назначение —
CIDR
. - CIDR блоки —
0.0.0.0/0
.
- Диапазон портов —
-
-
Создайте сервисный аккаунт
data-proc-sa
с ролями: -
Создайте бакет Yandex Object Storage с ограниченным доступом.
-
Создайте кластер Yandex Data Processing любой подходящей конфигурации со следующими настройками:
- Сервисный аккаунт —
data-proc-sa
. - Формат указания бакета —
Список
. - Имя бакета — выберите созданный ранее бакет.
- Сеть —
data-proc-network
. - Группы безопасности —
data-proc-security-group
.
- Сервисный аккаунт —
-
Если у вас еще нет Terraform, установите и настройте его.
-
Скачайте файл с настройками провайдера
. Поместите его в отдельную рабочую директорию и укажите значения параметров. -
Скачайте в ту же рабочую директорию файл конфигурации data-proc-dns-connect.tf
.В файле описаны:
- сеть;
- подсеть;
- DNS-зона и запись CNAME для хоста-мастера кластера;
- NAT-шлюз и таблица маршрутизации;
- группы безопасности;
- сервисный аккаунт для работы с ресурсами кластера;
- бакет, в котором будут храниться зависимости заданий и результаты их выполнения;
- кластер Yandex Data Processing.
-
Укажите в файле
data-proc-dns-connect.tf
переменные:folder_id
— идентификатор каталога;path_to_ssh_public_key
— путь к публичному SSH-ключу;bucket
— имя бакета.
-
Выполните команду
terraform init
в рабочей директории с конфигурационными файлами. Эта команда инициализирует провайдер, указанный в конфигурационных файлах, и позволяет работать с ресурсами и источниками данных провайдера. -
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
Создайте DNS-зону и запись CNAME
Создайте ресурсы:
-
Создайте внутреннюю зону DNS с настройками:
- Зона —
data-proc-test-user.org.
. - Сети — выберите сеть
data-proc-network
. - Имя —
dp-private-zone
.
- Зона —
-
Создайте DNS-запись с типом CNAME и настройками:
- Имя —
data-proc-test-user.org.
. - Значение — FQDN хоста-мастера кластера Yandex Data Processing.
- Имя —
-
Получите адрес FQDN хоста-мастера кластера Yandex Data Processing.
-
Укажите в файле
data-proc-dns-connect.tf
переменную:dataproc_fqdn
— значение FQDN хоста-мастера кластера Yandex Data Processing.
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Проверьте сетевой доступ к кластеру по записи CNAME:
dig data-proc-test-user.org.
<...>
;; ANSWER SECTION:
data-proc-test-user.org. 600 IN CNAME rc1a-dataproc-m-6ijqng07vul2mu8j.mdb.yandexcloud.net.
rc1a-dataproc-m-6ijqng07vul2mu8j.mdb.yandexcloud.net. 600 IN A 192.168.1.8
Удалите кластер и создайте его заново
- Удалите кластер Yandex Data Processing и создайте новый с идентичными характеристиками.
- Измените DNS-запись, созданную ранее, и укажите в параметре Значение FQDN хоста-мастера вновь созданного кластера.
-
Удалите секцию
yandex_dataproc_cluster
в файлеdata-proc-dns-connect.tf
. -
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Добавьте секцию
yandex_dataproc_cluster
в файлеdata-proc-dns-connect.tf
с тем же содержанием, что и в исходном файле, для создания нового кластера Yandex Data Processing. -
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте кластер:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите адрес FQDN хоста-мастера вновь созданного кластера Yandex Data Processing.
-
Укажите в файле
data-proc-dns-connect.tf
переменную:dataproc_fqdn
— значение FQDN хоста-мастера кластера.
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Проверьте, что сетевой доступ к созданному кластеру по записи CNAME сохранился:
dig data-proc-test-user.org.
<...>
;; ANSWER SECTION:
data-proc-test-user.org. 600 IN CNAME rc1a-dataproc-m-lsqohjh53rfu659d.mdb.yandexcloud.net.
rc1a-dataproc-m-8kompl81232cdsu8j.mdb.yandexcloud.net. 600 IN A 192.168.1.8
Удалите созданные ресурсы
Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:
- Удалите кластер Yandex Data Processing.
- Если вы зарезервировали публичные статические IP-адреса, освободите и удалите их.
- Удалите подсеть.
- Удалите таблицу маршрутизации.
- Удалите NAT-шлюз.
- Удалите сеть.
- Удалите DNS-зону.
-
В терминале перейдите в директорию с планом инфраструктуры.
Важно
Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.
-
Удалите ресурсы:
-
Выполните команду:
terraform destroy
-
Подтвердите удаление ресурсов и дождитесь завершения операции.
Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.
-