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