coreDNS затоплен istio (посланником)
Когда имеется множество внешних виртуальных машин, доступных только через брандмауэр, и в кластере имеется несколько пространств имен, каждое из которых имеет свой собственный набор внешних виртуальных машин, вы получаете множество ServiceEntries, что, в свою очередь, вызывает множество DNS-запросов. для
$host.$ns.svc.cluster.local
$host.svc.cluster.local
$host.cluster.local
где $host, например: vm-1.vm-cluster.example.com, скажем, с 10 пространствами имен и 100 модулями в каждом пространстве имен, это довольно много DNS-запросов, на все из которых отвечает NXDOMAIN, поэтому локальный DNS-кэш istio не работает. Это может привести к перегрузке модулей coreDNS (объем памяти, включая буферы, увеличивается и приводит к отключению модуля DNS).
Мой вопрос: как я могу предотвратить эти запросы? Решения, которые я придумал:
Замена $host на полное доменное имя, включающее точку в конце, не работает, поскольку сертификаты X.509 содержат имя хоста без точки в конце. Измените конфигурацию DNS каждого модуля и установите для параметра ndots значение примерно 3. Но это звучит как кошмар для обслуживания. Я хотел бы решить эту проблему с помощью умной комбинации определений ServiceEntry, VirtualService и Gateway.
K8s версия 1.19 (версия vmware) Istio версия 1.9 (также версия vmware)