Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Kubernetes Service (AKS) používá CoreDNS ke správě a řešení DNS clusteru u všech clusterů verze 1.12.x a výše. AKS je spravovaná služba, takže nemůžete upravit hlavní konfiguraci coreDNS ( CoreFile). Místo toho použijete objekt ConfigMap Kubernetes k přepsání výchozího nastavení. Pokud chcete zobrazit výchozí ConfigMapy AKS CoreDNS, použijte tento příkaz kubectl get configmaps --namespace=kube-system coredns --output yaml.
V tomto článku se dozvíte, jak používat ConfigMaps pro základní možnosti přizpůsobení CoreDNS ve službě Azure Kubernetes Service (AKS).
Poznámka:
Dříve se AKS používalo kube-dns pro správu a řešení DNS clusteru, ale nyní je nedoporučováno.
kube-dns nabízí různé možnosti přizpůsobení prostřednictvím mapy konfigurace Kubernetes. CoreDNS není zpětně kompatibilní s kube-dns. Abyste mohli pracovat s CoreDNS, musíte aktualizovat všechna předchozí přizpůsobení.
Požadavky
- Tento článek předpokládá, že máte existující cluster AKS. Pokud potřebujete cluster AKS, můžete ho vytvořit pomocí Azure CLI, Azure PowerShellu nebo webu Azure Portal.
- Ověřte verzi CoreDNS, kterou používáte. Hodnoty konfigurace se můžou mezi verzemi měnit.
Podpora modulů plug-in
Podporují se všechny integrované moduly plug-in CoreDNS. Nepodporují se žádné doplňky nebo moduly plug-in třetích stran.
Důležité
Při vytváření konfigurací, jako jsou ty v tomto článku, musí názvy, které zadáte v oddílu data, končit .server nebo .override. Tato konvence vytváření názvů je definována ve výchozím objektu ConfigMap AKS CoreDNS, který můžete zobrazit pomocí kubectl get configmaps --namespace=kube-system coredns --output yaml příkazu.
Konfigurujte přepis názvů DNS
Vytvořte soubor s názvem
corednsms.yamla vložte ho do následující ukázkové konfigurace. Nezapomeňte nahradit<domain to be rewritten>vlastním plně kvalifikovaným názvem domény (FQDN).apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | <domain to be rewritten>.com:53 { log errors rewrite stop { name regex (.*)\.<domain to be rewritten>\.com {1}.default.svc.cluster.local answer name (.*)\.default\.svc\.cluster\.local {1}.<domain to be rewritten>.com } forward . /etc/resolv.conf # You can redirect this to a specific DNS server such as 10.0.0.10, but that server must be able to resolve the rewritten domain name }Důležité
Pokud přesměrujete na server DNS, například IP adresu služby CoreDNS, musí být tento server DNS schopný přeložit přepsaný název domény.
Pomocí příkazu vytvořte objekt ConfigMap
kubectl apply configmapa zadejte název manifestu YAML.kubectl apply -f corednsms.yamlOvěřte, že byla vlastní nastavení použita pomocí příkazu
kubectl get configmaps.kubectl get configmaps --namespace=kube-system coredns-custom -o yamlProveďte postupný restart, abyste znovu načetli ConfigMap a umožnili plánovači Kubernetes restartovat CoreDNS bez přerušení dostupnosti pomocí příkazu
kubectl rollout restart.kubectl --namespace kube-system rollout restart deployment coredns
Určení serveru pro předávání síťových přenosů
Vytvořte soubor s názvem
corednsms.yamla vložte ho do následující ukázkové konfigurace. Nezapomeňte nahraditforwardnázev a<domain to be rewritten>vlastními hodnotami.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | # You can select any name here, but it must end with the .server file extension <domain to be rewritten>.com:53 { forward foo.com 1.1.1.1 }Pomocí příkazu vytvořte objekt ConfigMap
kubectl apply configmap.kubectl apply -f corednsms.yamlProveďte postupný restart, abyste znovu načetli ConfigMap a umožnili plánovači Kubernetes restartovat CoreDNS bez přerušení dostupnosti pomocí příkazu
kubectl rollout restart.kubectl --namespace kube-system rollout restart deployment coredns
Použití vlastních domén
Možná budete chtít nakonfigurovat vlastní domény, které lze vyřešit pouze interně. Můžete například chtít vyřešit vlastní doménu puglife.local, což není platná doména nejvyšší úrovně. Bez objektu ConfigMap vlastní domény nemůže AKS cluster tuto adresu vyřešit.
Vytvořte nový soubor s názvem
corednsms.yamla vložte ho do následující ukázkové konfigurace. Nezapomeňte aktualizovat vlastní doménu a IP adresu vlastními hodnotami.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: puglife.server: | # You can select any name here, but it must end with the .server file extension puglife.local:53 { errors cache 30 forward . 192.11.0.1 # This is my test/dev DNS server }Pomocí příkazu vytvořte objekt ConfigMap
kubectl apply configmap.kubectl apply -f corednsms.yamlProveďte postupný restart, abyste znovu načetli ConfigMap a umožnili plánovači Kubernetes restartovat CoreDNS bez přerušení dostupnosti pomocí příkazu
kubectl rollout restart.kubectl --namespace kube-system rollout restart deployment coredns
Konfigurace zástupných domén
Vytvořte soubor s názvem
corednsms.yamla vložte následující ukázkovou konfiguraci. Nezapomeňte aktualizovat vlastní domény a IP adresy vlastními hodnotami.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | # You can select any name here, but it must end with the .server file extension abc.com:53 { errors cache 30 forward . 1.2.3.4 } my.cluster.local:53 { errors cache 30 forward . 2.3.4.5 }Vytvořte objekt ConfigMap pomocí příkazu
kubectl apply configmapa zadejte konkrétní parametry.kubectl apply -f corednsms.yamlProveďte postupný restart, abyste znovu načetli ConfigMap a umožnili plánovači Kubernetes restartovat CoreDNS bez přerušení dostupnosti pomocí příkazu
kubectl rollout restart.kubectl --namespace kube-system rollout restart deployment coredns
Přidání vlastních mapování hostů na IP adresy
Vytvořte soubor s názvem
corednsms.yamla vložte následující ukázkovou konfiguraci. Nezapomeňte aktualizovat IP adresy a názvy hostitelů vlastními hodnotami.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom # This is the name of the ConfigMap you can overwrite with your changes namespace: kube-system data: test.override: | # You can select any name here, but it must end with the .override file extension hosts { 10.0.0.1 example1.org 10.0.0.2 example2.org 10.0.0.3 example3.org fallthrough }Pomocí příkazu vytvořte objekt ConfigMap
kubectl apply configmap.kubectl apply -f corednsms.yamlProveďte postupný restart, abyste znovu načetli ConfigMap a umožnili plánovači Kubernetes restartovat CoreDNS bez přerušení dostupnosti pomocí příkazu
kubectl rollout restart.kubectl --namespace kube-system rollout restart deployment coredns
Další kroky
- Informace o řešení potíží s CoreDNS najdete v tématu Řešení potíží se službou CoreDNS ve službě Azure Kubernetes Service (AKS).
- Další informace o chování automatického škálování CoreDNS najdete v tématu Automatické škálování CoreDNS ve službě Azure Kubernetes Service (AKS).