Encontramos um problema em que temos 2 serviços em execução; auth-api e coelho-mq. No pod auth-ui, estamos tentando fazer com que ele encontre o pod rabbit-mq para que ele possa ler nas filas.
Quando usamos um nome DNS curto: rabbitmq-master
, recebo o seguinte erro;
kubectl exec auth-api-jf2ec -i nslookup rabbitmq-master
nslookup: can't resolve '(null)': Name does not resolve
nslookup: can't resolve 'rabbitmq-master': Try again
error: error executing remote command: Error executing command in container: Error executing in Docker Container: 1
Se eu usar o nome DNS completo: rabbitmq-master.default.svc.cluster.local
, funciona bem:
kubectl exec auth-api-jf2ec -i nslookup rabbitmq-master.default.svc.cluster.local
Name: rabbitmq-master.default.svc.cluster.local
Address 1: 10.0.61.158 ip-10-0-61-158.eu-west-1.compute.internal
nslookup: can't resolve '(null)': Name does not resolve
Portanto, poderíamos apenas usar o DNS completo, mas isso significaria que precisamos alterar nossos scripts de implantação para cada namespace de cliente que desejamos usar.
Verifiquei nosso cluster e o pod kube-dns está instalado e funcionando.
$ k get --all-namespaces pods
NAMESPACE NAME READY STATUS RESTARTS AGE
default auth-api-jf2ec 1/1 Running 0 15h
default rabbitmq-master-6yu3o 1/1 Running 0 15h
kube-system elasticsearch-logging-v1-o24ye 1/1 Running 0 6d
kube-system elasticsearch-logging-v1-vlvw0 1/1 Running 1 6d
kube-system fluentd-elasticsearch-ip-172-0-0-32.eu-west-1.compute.internal 1/1 Running 1 6d
kube-system fluentd-elasticsearch-ip-172-0-0-33.eu-west-1.compute.internal 1/1 Running 0 6d
kube-system fluentd-elasticsearch-ip-172-0-0-34.eu-west-1.compute.internal 1/1 Running 0 6d
kube-system heapster-v1.0.2-2148290995-zl3wq 4/4 Running 0 6d
kube-system kibana-logging-v1-e3ci3 1/1 Running 3 6d
kube-system kube-dns-v11-ju72c 4/4 Running 0 6d
kube-system kube-proxy-ip-172-0-0-32.eu-west-1.compute.internal 1/1 Running 1 6d
kube-system kube-proxy-ip-172-0-0-33.eu-west-1.compute.internal 1/1 Running 0 6d
kube-system kube-proxy-ip-172-0-0-34.eu-west-1.compute.internal 1/1 Running 0 6d
kube-system kubernetes-dashboard-v1.0.1-tbyn2 1/1 Running 1 6d
kube-system monitoring-influxdb-grafana-v3-gm426 2/2 Running 0 6d
Esta é a saída do arquivo /etc/resolv.conf
no pod auth-api:
$ kubectl exec auth-api-jf2ec -i cat /etc/resolv.conf
search default.svc.cluster.local svc.cluster.local cluster.local eu-west-1.compute.internal
nameserver 10.0.0.10
options nods:5
Eu configurei algo incorretamente / não configurei nada?
Havia uma informação importante que não percebi neste problema ... estávamos usando alpine:3.3
como nossa imagem base e isso não é compatível com a diretiva search
em /etc/resolv.conf
.
Depois de atualizar para alpine:3.4
o problema foi resolvido.
Espero que isso seja útil para alguém.
Comentários muito úteis
Havia uma informação importante que não percebi neste problema ... estávamos usando
alpine:3.3
como nossa imagem base e isso não é compatível com a diretivasearch
em/etc/resolv.conf
.Depois de atualizar para
alpine:3.4
o problema foi resolvido.Espero que isso seja útil para alguém.