Может ли экземпляр пилота сконфигурирован для запроса как k8s, так и консула? - PullRequest
0 голосов
/ 21 мая 2018

мы запускаем сервисы в k8s и не k8s.Услуги не-k8s зарегистрированы в Консуле.Мы думаем о добавлении istio в наш стек, и в идеале мы хотим, чтобы сервисы k8s вызывали сервисы не-k8s.Итак, у меня есть несколько вопросов по этому поводу

1) Может ли один экземпляр запроса поддержки Pilot и k8s, и консул?
2) Можно ли настроить istio для поддержки такой среды?

Iпопытался прочитать istio docs, но не смог найти, можно ли настроить Pilot для одновременного запроса консулов ​​и k8s.Ссылочные ссылки на документы / блоги также будут полезны.Заранее спасибо!

1 Ответ

0 голосов
/ 21 мая 2018

Начиная с Kubernetes v1.6, kube-dns поддерживает настройку для пользовательских зон DNS (например, .consul.local) с внешним преобразователем и для внешнего DNSсерверы для обслуживания запросов в «другие зоны».

Чтобы использовать эту функцию, необходимо правильно настроить две вещи:

  1. Добавить пользовательские зоны в kube-dns ConfigMap
  2. Установите для pod dnsPolicy значение ClusterFirst
    (поиск подробностей в разделе «Политика DNS Pod» связанного документа)

С помощьюdnsPolicy, для которого установлено значение «ClusterFirst», DNS-запрос сначала отправляется на уровень кэширования DNS в kube-dns. Отсюда суффикс запроса проверяется, а затем перенаправляется в соответствующий DNS. В этом случае имена с суффиксом кластера (например, «.cluster.local») отправляются в kube-dns. Имена с суффиксом домена-заглушки (например, «.acme.local») будут отправляться в настроенный пользовательский преобразователь. Наконец, запросы, которые не совпадают ни с однимиз этих суффиксов будут перенаправлены в вышестоящий DNS.

Вот пример добавления настраиваемой карты для зоны .consul.local и настраиваемых вышестоящих служб.

apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-dns
  namespace: kube-system
data:
  stubDomains: |
    {“consul.local”: [“10.150.0.1”]}
  upstreamNameservers: |
    ["8.8.8.8", "8.8.4.4"]

Чтобы применить этоконфигурации, сохраните ее в файл kube-dns-consul-stubdomain.yml и выполните команду (настройте имя зоны и IP-адрес сервера в соответствии с вашими потребностями):

kubectl create -f kube-dns-consul-stubdomain.yml

Это пример конфигурации модуля с помощью dnsPolicy

apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  containers:
  - image: busybox
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
    name: busybox
  restartPolicy: Always
  hostNetwork: true
  dnsPolicy: ClusterFirst

Эти ресурсы могут оказаться полезными для понимания деталей функции «Частные зоны DNS»:

...