Как я могу обнюхать все DNS-записи из kuberenetes?

Я хочу обнюхать и извлечь все записи DNS из kubernetes: clientIP, serverIP, дату, QueryType и т. д. Я настроил службу kuberenetes. Он онлайн и работает. Там я создал несколько контейнерных микросервисов, которые генерируют DNS-запросы (HTTP-запросы на внешние адреса). Как я могу увидеть, понюхать его? Есть ли способ извлечь журналы с записями DNS?


person trung chum    schedule 01.09.2019    source источник
comment
Какой DNS-сервер вы используете - codedns или kube-dns?   -  person Bimal    schedule 02.09.2019
comment
coredns мой DNS-сервер   -  person trung chum    schedule 08.09.2019


Ответы (2)


Учитывая, что вы используете CoreDNS в качестве службы DNS вашего кластера, вы можете настроить ее на записывать запросы, ошибки и т. д. в stdout. CoreDNS был доступен в качестве альтернативы kube-dns, начиная с k8s версии 1.11, поэтому, если вы используете кластер версии> 1.11, есть большая вероятность, что вы используете CoreDNS.

Служба CoreDNS обычно™️ находится в пространстве имен kube-system и может быть перенастроена с помощью предоставленного ConfigMap.

Пример записи всего в stdout, взятый из README:

. {
    ...
    log
    ...
}

Когда вы перенастроили CoreDNS, вы можете проверить журналы Pod с помощью:

kubectl logs -n kube-system <POD NAME>

person mikejoh    schedule 02.09.2019
comment
Привет спасибо за повтор. Я использую CoreDNS, но из вашего ответа не понял, как извлечь журналы DNS. Какие файлы мне нужно отредактировать или перенастроить? Могу ли я видеть запросы DNS из контейнера во внешнем файле журнала? ТИА - person trung chum; 08.09.2019
comment
@giladrosenthal Хорошо, поэтому, если вы сделаете kubectl get configmap -n kube-system, должна быть ConfigMap (конфигурация) с именем что-то с CoreDNS. Вы можете отредактировать это, чтобы добавить опцию log, о которой я упоминал в своем ответе. В моем кластере ConfigMap называется coredns, поэтому, если я выполню следующую команду, я смогу прочитать конфигурацию CoreDNS (в yaml): kubectl get configmap -n kube-system coredns -o yaml. Когда вы отредактируете конфигурацию, вы сможете читать журналы с помощью kubectl logs модулей CoreDNS. - person mikejoh; 08.09.2019

Я успешно извлек журналы DNS, используя ответ выше. Моя новая проблема заключается в том, что я не вижу данные разрешения, т.е. RRDATA, такие как разрешенный IP-адрес или другую информацию об ответе?

person trung chum    schedule 11.09.2019