#kubernetes #dns #azure-aks #kube-dns #coredns
#kubernetes #dns #azure-aks #kube-dns #ядра
Вопрос:
В настоящее время у нас есть модули в кластере kubernetes (AKS), которым необходимо разрешить два разных домена.
Первым доменом является домен кластера default.svc.cluster.local, а вторым — mydns.local
как этого можно достичь?
Ответ №1:
Я сам нашел решение.
Есть два способа добиться желаемого разрешения имен:
- Если ваш кластер AKS находится в виртуальной сети Azure, вы можете настроить параметры DNS во виртуальной сети на пользовательский DNS-сервер, который может разрешить ваш пользовательский домен. Если у ваших модулей нет заданных параметров dns, разрешение будет работать следующим образом:
Сначала модули пытаются разрешить DNS-запрос в CoreDNS, если они не могут, тогда они берут настройки DNS хоста и запрашивают DNS-сервер, настроенный на хосте. Поскольку в Azure настройки DNS виртуальной сети применяются к виртуальным машинам, он будет запрашивать правильный DNS-сервер.
-
Измените настройки CoreDNS в вашем кластере AKS с помощью следующего json :
apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: yourdns.server: | yourdns.com:53 { errors cache 1 proxy . 10.1.0.40 }
Важно знать, что в AKS вы не можете перезаписать конфигурационную карту coredns. Мастер Kubernetes всегда сбрасывает его по умолчанию через пару секунд. Если вы хотите отредактировать ConfigMap в AKS, вы должны назвать configmap «coredns-custom».
yourdns.server
на самом деле это не сервер. Это domain.server
. IP-адрес DNS-сервера находится за настройкой прокси.
Ответ №2:
Я думаю, вы можете использовать ingress и ingress controller для управления доменом и путем.с помощью ingress вы можете управлять несколькими доменами и подключать службу к определенному домену.
Здесь также представлен общий учебник по настройке ingress из digital ocean, которому вы можете следовать :
Комментарии:
1. Эй, я, вероятно, был недостаточно ясен в своем посте. Пользовательский домен (mydns.local) содержит службы, которых нет в кластере kubernetes. Таким образом, кластеру необходимо разрешить свои внутренние адреса через домен «default.svc.cluster.local» и адреса в подключенной сети через домен «mydns.local».
2. Есть ли у вас сервер доменных имен для вашего пользовательского домена (mydns.local)
Ответ №3:
Ваш второй пункт «2. Измените настройки CoreDNS в вашем кластере AKS с помощью следующего json:»
Обратите внимание, что вместо «прокси» следует использовать плагин «forward», как указано здесь: