Плагин coredns forward для использования имени службы k8s

Для настройки мультикластера Isito с реплицированными плоскостями управления одним из требований является настройка службы k8s coredns в пространстве имен kube-system для переадресации глобальной зоны на IP-адрес службы istiocoredns, развернутой в пространстве имен istio-system. Например, это:

    global:53 {
        errors
        cache 30
        forward . $(kubectl get svc -n istio-system istiocoredns -o jsonpath={.spec.clusterIP}):53
    }

В этом примере расширение этой команды используется для получения IP-адреса службы типа istiocoredns ClusterIP.

Поскольку это нестатический IP-адрес, который можно изменить, я ищу способ использовать что-то более динамичное и учитывающее изменения. Было бы здорово использовать полное доменное имя службы istiocoredns, но в документации coredns об этом ничего не упоминается.

Есть ли какой-нибудь плагин coredns или обходной путь?

Спасибо.


person Sebastián Greco    schedule 02.10.2020    source источник


Ответы (1)


Есть ли какой-нибудь плагин coredns или обходной путь?

Существует плагин istio coredns, но, как указано в раздел использования они в любом случае устанавливают здесь IP-адрес ядра.

Обновите карту конфигурации kube-dns, чтобы она указывала на эту службу coredns в качестве вышестоящей службы DNS для домена *.global. Вам нужно будет узнать кластерный IP-адрес службы coredns и обновить карту конфигурации (или написать контроллер для этой цели!).

apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-dns
  namespace: kube-system
data:
  stubDomains: |
    {"global": ["10.2.3.4"]}

Но вот интересная информация

ОБНОВЛЕНИЕ: Этот плагин больше не нужен, начиная с Istio 1.8. DNS встроен в агент istio в дополнении. Sidecar DNS включен по умолчанию в профиле предварительного просмотра. Вы также можете включить его вручную, установив следующую конфигурацию в операторе istio.

  meshConfig:
    defaultConfig:
      proxyMetadata:
        ISTIO_META_DNS_CAPTURE: "true"
        ISTIO_META_PROXY_XDS_VIA_AGENT: "true"

Вы можете найти дополнительную информацию об этом здесь.

В настоящее время предпринимаются некоторые усилия, которые помогут упростить историю DNS:

Вскоре Istio будет поддерживать перехват DNS для всех рабочих нагрузок с помощью дополнительного прокси-сервера. Это позволит Istio выполнять поиск DNS от имени приложения.

Admiral — это проект сообщества Istio, предоставляющий ряд многокластерных возможностей, включая автоматическое создание служебных DNS. записи.

Мультикластерные службы Kubernetes — это предложение по улучшению Kubernetes (KEP), определяющее API для экспорта сервисов в несколько кластеров. Это эффективно перекладывает ответственность за видимость службы и разрешение DNS для всего набора кластеров на Kubernetes. Также ведется работа по созданию уровней поддержки MCS в Istio, что позволит Istio работать с контроллером MCS любого облачного поставщика или даже выступать в качестве контроллера MCS для всей сетки.

Хотя Admiral уже доступен, сообщества Istio и Kubernetes активно внедряют более общие решения в свои платформы. Следите за обновлениями!


Об этом есть в предварительной документации 1.8.

person Jakub    schedule 05.10.2020