Интеграция с корпоративной зоной DNS
Чтобы интегрировать кластер Managed Service for Kubernetes с приватной корпоративной зоной DNS:
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
-
Создайте ресурсы Kubernetes:
ВручнуюС помощью Terraform-
Создайте кластер Managed Service for Kubernetes с настройкой Публичный адрес:
Автоматически
. -
Создайте группу узлов любой подходящей конфигурации.
-
Настройте группы безопасности кластера и группы узлов. Группа безопасности кластера должна разрешать входящие подключения к портам
443
и6443
.
-
Если у вас еще нет Terraform, установите его.
-
Скачайте файл с настройками провайдера. Поместите его в отдельную рабочую директорию и укажите значения параметров.
-
Скачайте в ту же рабочую директорию файл конфигурации кластера k8s-cluster.tf. В файле описаны:
- Сеть.
- Подсеть.
- Группа безопасности по умолчанию и правила, необходимые для работы кластера Managed Service for Kubernetes:
- Правила для служебного трафика.
- Правила для доступа к API Kubernetes и управления кластером с помощью
kubectl
(через порты 443 и 6443).
- Кластер Managed Service for Kubernetes.
- Группа узлов Managed Service for Kubernetes.
- Сервисный аккаунт, необходимый для создания кластера и группы узлов Managed Service for Kubernetes.
-
Укажите в файле конфигурации идентификатор каталога.
-
Выполните команду
terraform init
в директории с конфигурационными файлами. Эта команда инициализирует провайдер, указанный в конфигурационных файлах, и позволяет работать с ресурсами и источниками данных провайдера. -
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.
-
-
-
Установите kubectl и настройте его на работу с созданным кластером.
Настройте DNS-сервер
При настройке важно, чтобы была IP-связность между узлами кластера Managed Service for Kubernetes и DNS-серверами. Сами DNS-серверы могут находиться как в Yandex Virtual Private Cloud, так и быть доступными через VPN или Yandex Cloud Interconnect. Далее рассматривается случай, когда DNS-сервер имеет адрес 10.129.0.3
, имя ns.example.com
и обслуживает зону example.com
.
Укажите корпоративную зону DNS
-
Подготовьте файл
custom-zone.yaml
со следующим содержимым:kind: ConfigMap apiVersion: v1 metadata: name: coredns-user namespace: kube-system labels: addonmanager.kubernetes.io/mode: EnsureExists data: Corefile: | # User can put their additional configurations here, for example: example.com { errors cache 30 forward . 10.129.0.3 }
-
Выполните команду:
kubectl replace -f custom-zone.yaml
Результат:
configmap/coredns-user replaced
Создайте под dns-utils
-
Создайте под:
kubectl run jessie-dnsutils \ --image=k8s.gcr.io/jessie-dnsutils \ --restart=Never \ --command sleep infinity
Результат:
pod/jessie-dnsutils created
-
Просмотрите информацию о созданном поде:
kubectl describe pod jessie-dnsutils
Результат:
... Status: Running ...
Проверьте интеграцию DNS
Выполните команду nslookup
в запущенном контейнере:
kubectl exec jessie-dnsutils -- nslookup ns.example.com
Результат:
Server: 10.96.128.2
Address: 10.96.128.2#53
Name: ns.example.com
Address: 10.129.0.3
Удалите созданные ресурсы
Если созданные ресурсы вам больше не нужны, удалите их:
-
Удалите кластер Managed Service for Kubernetes:
ВручнуюС помощью Terraform-
В командной строке перейдите в каталог, в котором расположен актуальный конфигурационный файл Terraform с планом инфраструктуры.
-
Удалите ресурсы с помощью команды:
terraform destroy
Внимание
Terraform удалит все ресурсы, которые были созданы с его помощью: кластеры, сети, подсети, виртуальные машины и т. д.
-
Подтвердите удаление ресурсов.
-
-
Удалите ВМ с DNS-сервером.