В настоящее время у нас есть модули в кластере кубернетов (AKS), которым необходимо разрешить два разных домена.
Первый домен является доменом кластера default.svc.cluster.local, а второй - mydns.local.
как этого добиться?
В настоящее время у нас есть модули в кластере кубернетов (AKS), которым необходимо разрешить два разных домена.
Первый домен является доменом кластера default.svc.cluster.local, а второй - mydns.local.
как этого добиться?
Я сам нашел решение.
Есть два способа добиться желаемого разрешения имен:
Сначала модули пытаются разрешить DNS-запрос в CoreDNS, если они не могут, тогда они берут настройки DNS хоста и запрашивают DNS-сервер, настроенный на хосте. Поскольку в лазурном режиме настройки 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 ConfigMap. Мастер Kubernetes всегда будет сбрасывать его по умолчанию через пару секунд. Если вы хотите отредактировать ConfigMap в AKS, вы должны назвать конфигурационную карту «coredns-custom».
yourdns.server
на самом деле не сервер. Это domain.server
. IP-адрес DNS-сервера находится за настройкой прокси.
Я думаю, вы можете использовать входной и входной контроллер для управления доменом и путем. С помощью входящего трафика вы можете управлять несколькими доменами и подключать службу к определенному домену.
Вот также руководство по настройке входа из цифрового океана, вы можете следовать ему:
Ваш второй пункт: «2. Измените настройки coreDNS в вашем кластере AKS с помощью следующего json:»
Обратите внимание, что плагин "forward" должен использоваться вместо "proxy", как указано здесь:
https://github.com/Azure/AKS/issues/1304