0

У меня есть простой контейнер в Google Container Engine, который работает в течение нескольких месяцев без проблем. Внезапно я не могу разрешить ЛЮБОЙ внешний домен. При устранении неполадок я повторно создал контейнер много раз и обновил версию кластера до 1.4.7 в попытке решить без изменений.Внешнее разрешение DNS перестало работать в контейнеровозе

Чтобы исключить код приложения, как много, насколько это возможно, даже базовый код Node.js не может разрешить внешний домен:

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

То же побежал на локальной машине или местных докеров контейнерных работ, как ожидалось.

Это kubectl вызов не выполняется, а также:

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

Два появляются при получении Кубэ-Dns стручки (правда, не уверен, что, как ожидается)

# 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 

Оба говорят это при попытке проверить для ошибок в DNS-модуле:

# 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 

Я ожидаю, что внутренне созданные kube-dns не будут правильно вытягивание внешних результатов DNS или некоторая другая связь исчезла.

Я приму практически любое обходное решение, если оно существует, поскольку это производственное приложение - возможно, можно вручную установить серверы имен в файле YAML контроллера Kubernetes или в другом месте. Установка содержимого файла /etc/resolv.conf в файле Docker не работает.

ответ

1

Только что проверили, и в наших собственных кластерах у нас обычно есть 3 куба-dns, поэтому что-то кажется там.

Что это говорит: kybectl describe rc kube-dns-v20 --namespace=kube-system

Что происходит, когда вы убиваете Кубэ-Dns стручки? (rc должен автоматически перезапустить их)

Что происходит, когда вы выполняете nslookup с определенным сервером имен? nslookup nodejs.org 8.8.8.8

Смежные вопросы