Переключение сетевого соединения при пересоздании кластера Yandex Data Processing
Пересоздание кластера может понадобиться для обновления программного обеспечения, переноса нагрузки между кластерами, перемещения кластеров между зонами доступности и других операций.
В примере описана настройка DNS для быстрого переключения сетевого трафика на новые FQDN хостов при пересоздании кластера Yandex Data Processing. Для актуального имени хоста-мастера кластера создается сетевой псевдоним (запись CNAME) в сервисе Yandex Cloud DNS. При пересоздании кластера CNAME-запись изменяется на новое имя хоста-мастера.
Чтобы настроить DNS для кластера Yandex Data Processing:
Если созданные ресурсы вам больше не нужны, удалите их.
Необходимые платные ресурсы
В стоимость поддержки описываемого решения входят:
- Плата за кластер Yandex Data Processing (см. тарифы Yandex Data Processing).
- Плата за NAT-шлюз (см. тарифы Virtual Private Cloud).
- Плата за бакет Object Storage: хранение данных и выполнение операций с ними (см. тарифы Object Storage).
- Плата за использование публичных IP-адресов, если для хостов кластера включен публичный доступ (см. тарифы Virtual Private Cloud).
Перед началом работы
Подготовьте инфраструктуру:
-
Создайте сеть с именем
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 любой подходящей конфигурации со следующими настройками:
- Окружение —
PRODUCTION. - Сервисный аккаунт —
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-ключу;os_sa_name– имя сервисного аккаунта для управления бакетом;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-манифестах, будут удалены.
-