В кластере запущенные приложения перестали получать корректные ответы от DNS.
Диагностируем. Запускаем pod с dnsutils:

kubectl run dnsutils --image=gcr.io/kubernetes-e2e-test-images/dnsutils:1.3 -- sleep 3600

Заходим в нему в консольку:

kubectl exec -it dnsutils -- /bin/sh

И проверяем:

# nslookup kubernetes.default
;; reply from unexpected source: 10.244.0.178#53, expected 10.96.0.10#53

НЕ РАБОТАЕТ! Оказалось, что после замены CRIdocker на containerd) скорее всего в результате удаления docker, перестал загружаться модуль ядра br_netfilter.
Чтобы просто заставить работать нужно сделать так:

Debian
modprobe br_netfilter
CentOS
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables

А чтобы модуль загружался автоматически при загрузке хоста нужно сделать так:

echo 'br_netfilter' | sudo tee -a /etc/modules
Enter your comment. Wiki syntax is allowed:
 
  • devops/kubernetes_dns_reply_from_unexpected_source.txt
  • Last modified: 2021/06/02 08:47
  • by admin