01Istio与外部注册中心
Istio为何需要对接外部注册中心
Istio 对 Kubernetes 具有较强的依赖性:
1.服务发现就是基于 Kubernetes 实现的,如果要使用 Istio,首先需要迁移到 Kubernetes 上,并使用 Kubernetes 的服务注册发现机制。
2.对于大量现存的微服务项目来说,这个前提条件并不成立。对于存量的微服务存在一下几种情况:
第一种情况:微服务项目暂时迁移到 Kubernetes 上;
第二种情况:虽然采用了 Kubernetes 来进行部署和管理,但还是使用了 Consul,Eureka 等其他服务注册解决方案或者自建的服务注册中心。
02Istio服务模型
Pilot
管理服务网格内部的服务和流量策略:
Pilot 将服务信息和路由策略转换为 xDS 接口的标准数据结构,下发到数据面的 Envoy。但 Pilot 自身并不负责网格中的服务注册。
Pilot 中管理的服务数据有两处数据来源:
Service Registry:来源于各个服务注册表,例如 Kubernetes 中的 Service 和 Consul Catalog 中注册的服务。Istio 通过特定的适配器连接这些服务注册表,由适配器将服务注册表中的私有服务模型转换为 Istio 内部支持的标准服务模型。
Config Storage:来源于各种配置数据源中的独立服务,通过 Istio 定义的 ServiceEntry2 和Workloa