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