Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Kubernetes Service (AKS) maakt gebruik van CoreDNS voor cluster-DNS-beheer en -resolutie met alle clusters 1.12.x en hoger. AKS is een beheerde service, dus u kunt de hoofdconfiguratie voor CoreDNS (een CoreFile) niet wijzigen. In plaats daarvan gebruikt u een Kubernetes ConfigMap om de standaardinstellingen te overschrijven. Gebruik de opdracht om de kubectl get configmaps --namespace=kube-system coredns --output yaml standaard AKS CoreDNS ConfigMaps te zien.
In dit artikel wordt beschreven hoe u ConfigMaps gebruikt voor basisopties voor CoreDNS-aanpassing in Azure Kubernetes Service (AKS).
Notitie
Voorheen gebruikte AKS kube-dns voor het DNS-beheer en de DNS-oplossing van het cluster, maar dat is nu afgeschaft.
kube-dns
verschillende aanpassingsopties aangeboden via een Kubernetes-configuratiekaart. CoreDNS is niet achterwaarts compatibel met kube-dns. U moet eventuele eerdere aanpassingen bijwerken om met CoreDNS te kunnen werken.
Vereiste voorwaarden
- In dit artikel wordt ervan uitgegaan dat u een bestaand AKS-cluster hebt. Als u een AKS-cluster nodig hebt, kunt u er een maken met behulp van Azure CLI, Azure PowerShell of Azure Portal.
- Controleer de versie van CoreDNS die u gebruikt. De configuratiewaarden kunnen veranderen tussen versies.
Ondersteuning voor invoegtoepassingen
Alle ingebouwde CoreDNS-invoegtoepassingen worden ondersteund. Er worden geen invoegtoepassingen van derden ondersteund.
Belangrijk
Wanneer u configuraties zoals de configuraties in dit artikel maakt, moeten de namen die u in de data sectie opgeeft, eindigen op .server of .override. Deze naamconventie wordt gedefinieerd in de standaard AKS CoreDNS ConfigMap, die u kunt weergeven met behulp van de kubectl get configmaps --namespace=kube-system coredns --output yaml opdracht.
DNS-naam herschrijven configureren
Maak een bestand met de naam
corednsms.yamlen plak deze in de volgende voorbeeldconfiguratie. Zorg ervoor dat u<domain to be rewritten>vervangt door uw eigen volledig gekwalificeerde domeinnaam (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 }Belangrijk
Als u omleidt naar een DNS-server, zoals het IP-adres van de CoreDNS-service, moet die DNS-server de herschreven domeinnaam kunnen omzetten.
Maak de ConfigMap met behulp van de
kubectl apply configmapopdracht en geef de naam van uw YAML-manifest op.kubectl apply -f corednsms.yamlControleer of de aanpassingen zijn toegepast met behulp van de
kubectl get configmapsopdracht.kubectl get configmaps --namespace=kube-system coredns-custom -o yamlVoer een rolling herstart uit om de ConfigMap opnieuw te laden en de Kubernetes Scheduler in te schakelen om CoreDNS opnieuw op te starten zonder uitvaltijd met behulp van de
kubectl rollout restartopdracht.kubectl --namespace kube-system rollout restart deployment coredns
Een doorstuurserver opgeven voor uw netwerkverkeer
Maak een bestand met de naam
corednsms.yamlen plak deze in de volgende voorbeeldconfiguratie. Zorg ervoor dat u de naamforwarden<domain to be rewritten>vervangt door uw eigen waarden.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 }Maak de ConfigMap met behulp van de
kubectl apply configmapopdracht.kubectl apply -f corednsms.yamlVoer een rolling herstart uit om de ConfigMap opnieuw te laden en de Kubernetes Scheduler in te schakelen om CoreDNS opnieuw op te starten zonder uitvaltijd met behulp van de
kubectl rollout restartopdracht.kubectl --namespace kube-system rollout restart deployment coredns
Aangepaste domeinen gebruiken
Mogelijk wilt u aangepaste domeinen configureren die alleen intern kunnen worden opgelost. U kunt bijvoorbeeld het aangepaste domein puglife.local oplossen, wat geen geldig topleveldomein is. Zonder een aangepast domein ConfigMap kan het AKS-cluster het adres niet oplossen.
Maak een nieuw bestand met de naam
corednsms.yamlen plak deze in de volgende voorbeeldconfiguratie. Zorg ervoor dat u het aangepaste domein en IP-adres bijwerkt met uw eigen waarden.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 }Maak de ConfigMap met behulp van de
kubectl apply configmapopdracht.kubectl apply -f corednsms.yamlVoer een rolling herstart uit om de ConfigMap opnieuw te laden en de Kubernetes Scheduler in te schakelen om CoreDNS opnieuw op te starten zonder uitvaltijd met behulp van de
kubectl rollout restartopdracht.kubectl --namespace kube-system rollout restart deployment coredns
Stub-domeinen configureren
Maak een bestand met de naam
corednsms.yamlen plak de volgende voorbeeldconfiguratie. Zorg ervoor dat u de aangepaste domeinen en IP-adressen bijwerkt met uw eigen waarden.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 }Maak de ConfigMap met behulp van de
kubectl apply configmapopdracht en geef deze op.kubectl apply -f corednsms.yamlVoer een rolling herstart uit om de ConfigMap opnieuw te laden en de Kubernetes Scheduler in te schakelen om CoreDNS opnieuw op te starten zonder uitvaltijd met behulp van de
kubectl rollout restartopdracht.kubectl --namespace kube-system rollout restart deployment coredns
Voeg aangepaste host-naar-IP toewijzingen toe
Maak een bestand met de naam
corednsms.yamlen plak de volgende voorbeeldconfiguratie. Zorg ervoor dat u de IP-adressen en hostnamen bijwerkt met uw eigen waarden.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 }Maak de ConfigMap met behulp van de
kubectl apply configmapopdracht.kubectl apply -f corednsms.yamlVoer een rolling herstart uit om de ConfigMap opnieuw te laden en de Kubernetes Scheduler in te schakelen om CoreDNS opnieuw op te starten zonder uitvaltijd met behulp van de
kubectl rollout restartopdracht.kubectl --namespace kube-system rollout restart deployment coredns
Volgende stappen
- Zie Problemen met CoreDNS oplossen in Azure Kubernetes Service (AKS) voor hulp bij het oplossen van CoreDNS-problemen.
- Zie Autoscaling CoreDNS in Azure Kubernetes Service (AKS) voor meer informatie over het autoscaling-gedrag van CoreDNS.