service mresh 使运维更方便
(1)治理能力独立 专注于业务 服务治理交给istio
应用程序无感知 服务通信的基础设施层
(2)负载均衡 动态路由 灰度发布 故障注入 调用脸 访问日志 监控 限流 ACL 认证 鉴权
k8s eureka cloudfoundry consual
k8a(部署 运维 扩所容) + istio(服务治理 负载均衡 服务发现)
pilot
获取用户自定义规则,和k8s本身的service 部署的时候作为一个pod部署在k8s的集群里 会watch相应的资源 把规则下发到envoy里面 envoy进而再拿到服务实例列表 做负载均衡 选择一个服务实例 把请求发出去
envoy
转发逻辑 配置文件的内容:
listeners:请求入口
routes:根据routes选择clusters
clusters:轮训规则
endpoints:转发到哪里
gateway + virtualservice+k8s获取到的service和endpoints的信息共同组成envoy配置文件
istio四个重要流量规则:
1 -》 virtualservice::服务访问路由控制 满足特定条件的请求流转到哪里,过程中治理 包括请求重写 重试 故障注入等
通过match rewrite 和 route 导向不同的版本
2-》 desinationrule:对一个destination 做一个服务,决定了路由处理之后的流量访问策略, (负载均衡 :不同版本去轮训或最小连接等,根据是否登陆来转发 断路器 TLS) 连接池管理(连接数 重试次数 超时 隔离舱)
3-》gateway:可发布内部任何端口 供外部访问 提供外部访问接入 配合virtualservic