Как не дать 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-dns
Deployment
(например kubectl edit -n kube-system deploy kube-dns
) Вы сами после того, как kubeadmin запустил кластер и измените вещи, чтобы они работали на вас.
Возможно, вы захотите попытаться изменить вышестоящий сервер имен на что-то отличное от 8.8.8.8, доступное для кластера. Вы должны быть в состоянии сделать это, добавив --nameservers=x.x.x.x
к args
для kubedns
контейнер.