Истио-пилот Консул Поддержка - PullRequest
0 голосов
/ 07 марта 2020

Мне немного неясно, каковы требования Istio-pilot к адаптеру Consul. Я пытаюсь настроить и заставить istio-pilot Discovery действовать как чистый Envoy xDS. Однако в одном из примеров, где используется Consul (из Istio sr c), он устанавливает один kube-apiserver (и, в этом отношении, etcd). Я хотел бы использовать Envoy в качестве плоскости данных (или агента istio-pilot), но использовать Consul для обнаружения сервисов, а не интегрироваться с Kubernetes. Требуется ли istio-pilot K8 для этого варианта использования?

1 Ответ

0 голосов
/ 07 марта 2020

Istio поддерживает несколько различных так называемых реализаций ServiceDiscovery. Kubernetes - один из них, который обнаруживает службы из служб Kubernetes.

Но на самом деле это только один из возможных способов запуска Istio Pilot, и вы можете использовать другие механизмы ServiceDiscovery в строке Consul через аргумент командной строки --registries Consul. См. https://archive.istio.io/v1.4/docs/reference/commands/pilot-discovery/ для подробного описания аргументов командной строки.

Как только вы запустите Pilot с этой конфигурацией, он должен загружать Сервисы исключительно из Consul. Они должны быть перенесены в плоскость данных под обычным именем <service name>.service.consul.

ОБНОВЛЕНИЕ:

Из вашего комментария ниже кажется, что вы хотите не только загружать Сервисы из Kubernetes, но и в Вообще-то, полностью без него.

Хотя на самом деле это не представляется возможным с 1.4 - то есть, всегда наблюдая за ресурсами Istio, - кажется, что оно работает с 1.5.

Для этого вам чтобы запустить пилотный запуск с --disable-install-crds и --configDir <config path>, где <config path> указывает на каталог, содержащий yamls для спецификаций Istio c, которые вам могут понадобиться, такие как Sidecars, MeshPolicy, EnvoyFilter et c. Если --configDir не определено, Pilot все равно попытается получить эти ресурсы из Kubernetes, поэтому важно добавить этот аргумент, даже если каталог пуст.

Наконец, вы должны убедиться, что MeshConfig, который вы передаете пилот через --meshConfig meshconfig.yaml не указывает на URL камбуза, комментируя это, если вы скопировали существующий файл /etc/istio/config/mesh из запущенного экземпляра Pilot:

configSources:
#- address: istio-galley.istio-system.svc:9901
#  tlsSettings:
#    mode: ISTIO_MUTUAL
...