0

Ich habe einen einfachen Container auf Google Container Engine, der seit Monaten ohne Probleme ausgeführt wird. Plötzlich kann ich keine externe Domain auflösen. Bei der Problembehandlung habe ich den Container mehrmals neu erstellt und die Clusterversion auf 1.4.7 aktualisiert, um eine Änderung ohne Änderung zu erreichen.Externe DNS-Auflösung funktioniert nicht mehr in Container Engine

den App-Code Um auszuschließen, so viel wie möglich, auch einen grundlegenden node.js Code eine externe Domäne nicht auflösen kann:

const dns = require('dns'); 
dns.lookup('nodejs.org', function(err, addresses, family) { 
    console.log('addresses:', addresses); 
}); 
/* logs 'undefined' */ 

Die gleiche RAN auf einem lokalen Rechner oder lokalen Docker Container funktionieren wie erwartet.

versagt Dieser kubectl Aufruf auch:

# kubectl exec -ti busybox -- nslookup kubernetes.default 
nslookup: can't resolve 'kubernetes.default' 

Zwei zeigen, wenn kube-dns Schoten bekommen (allerdings nicht sicher, ob das erwartet wird)

# kubectl get pods --namespace=kube-system -l k8s-app=kube-dns 
NAME     READY  STATUS RESTARTS AGE 
kube-dns-v20-v8pd6 3/3  Running 0   1h 
kube-dns-v20-vtz4o 3/3  Running 0   1h 

Beide sagen, wenn zu überprüfen versuchen für Fehler im DNS-Pod:

# kubectl logs --namespace=kube-system pod/kube-dns-v20-v8pd6 -c kube-dns 
Error from server: container kube-dns is not valid for pod kube-dns-v20-v8pd6 

Ich erwarte die intern erstellte Kube-DNS ist nicht richtig Das Ziehen externer DNS-Ergebnisse oder einer anderen Verknüpfung verschwand.

Ich werde fast jede Problemumgehung akzeptieren, wenn eine existiert, da dies eine Produktions-App ist - vielleicht ist es möglich, Nameserver in der Kubernetes-Controller-YAML-Datei oder anderswo manuell zu setzen. Den Inhalt von /etc/resolv.conf in Dockerfile zu setzen, scheint nicht zu funktionieren.

Antwort

1

Nur überprüft und in unseren eigenen Clustern haben wir normalerweise 3 kube-dns Pods, also scheint etwas da draußen zu sein.

Was sagt das: kybectl describe rc kube-dns-v20 --namespace=kube-system

Was, wenn Sie die kube-dns Schoten töten passiert dann? (der rc sollte sie automatisch neu starten)

Was passiert, wenn Sie ein nslookup mit einem bestimmten Nameserver machen? nslookup nodejs.org 8.8.8.8

Verwandte Themen