Как не дать kube-dns переслать запрос на 8.8.8.8:53

Как я могу запретить kube-dns пересылать запросы на серверы имен Google (8.8.8.8:53 и 8.8.4.4:53)? Я просто хочу запускать модули только для внутреннего использования, а это значит, что контейнеры в модулях вообще не должны подключаться к внешней стороне. Когда клиент Zookeeper подключается к серверу Zookeeper с использованием имени хоста (например, zkCli.sh -server zk-1.zk-headless), клиенту требуется 10 секунд, чтобы изменить свое состояние с [Соединяется] на [Подключен]. Я подозреваю, что kube-dns объясняется тем, что с IP-адресом модуля клиент мгновенно подключается. Когда я посмотрел журнал kube-dns, я обнаружил следующие две строки:

07:25:35:170773       1 logs.go:41] skydns: failure to forward request "read udp 10.244.0.13:43455->8.8.8.8:53: i/o timeout"
07:25:39:172847       1 logs.go:41] skydns: failure to forward request "read udp 10.244.0.13:42388->8.8.8.8:53: i/o timeout"

Это было около 07:25:30, когда клиент начинает подключаться к серверу.

Я запускаю Kubernetes в частном кластере, где внутренние серверы обмениваются данными с Интернетом через http_proxy / https_proxy, что означает, что я не могу подключиться к 8.8.8.8 для разрешения имен, AFAIK.

Я нашел следующее по https://github.com/skynetservices/skydns:

  • Значением по умолчанию переменной среды с именем SKYDNS_NAMESERVERS является "8.8.8.8:53,8.8.4.4:53"
  • Я мог бы достичь своей цели, установив no_rec в true

Я инициировал Kubernetes, используя kubeadm, и я не смог найти способ изменить переменную среды и установить значение свойства skydns.

Как я могу предотвратить переадресацию запроса kube-dns на внешний кластер Kubernetes, который развертывается с помощью kubeadm?

1 ответ

Я не думаю, что есть возможность полностью предотвратить kube-dns аддон от переадресации запросов. Там, конечно, не вариант прямо в kubeadm для этого.

Лучше всего отредактировать kube-dnsDeployment (например kubectl edit -n kube-system deploy kube-dns) Вы сами после того, как kubeadmin запустил кластер и измените вещи, чтобы они работали на вас.

Возможно, вы захотите попытаться изменить вышестоящий сервер имен на что-то отличное от 8.8.8.8, доступное для кластера. Вы должны быть в состоянии сделать это, добавив --nameservers=x.x.x.x к args для kubedns контейнер.

Другие вопросы по тегам