Envoy原理介绍及线上问题踩坑Istio-init 容器 Pod内共享网络 Pod内共享网络 Virtual inbound -15006 kubelet 拦截指定命名空间 Pod创建请求 xDS Iptables 规则 ./etc/istio/proxy/SDS 证书 获取 配置 文件 可以修改全局注入参数 作用于所有目标空间的 pod 证书更新 Envoy启动流程 Envoy控制面流量 Envoy数据面流量 据configmap配置生成带有Envoy两个容器的创建POD请求,修改过的创建请求被 kubelet接收,并在节点创建POD。 • istio-init容器添加用于配置容器网络内iptables规则 • istio-proxy容器启动pilot-agent进程,使用UID=1337 GID=1337创建Envoy启动命令行与配置文件 • 可以通过自定义deployment内istio注解sidecar 通过pilot-agent转发机制与istiod建立长连接,通过xDS协议接收系统下发的监听器、路由、集群节点等更新信息。 • 3. 数据面通信 • 客户端请求进入容器网络,并被iptables规则拦截,经过DNAT后进入Envoy virtualOutbound监听器 • virtualOutbound经过监听过滤器恢复用于原始目标服务,并找到后端处理器处理新连接。 • 后端处理器在配置0 码力 | 30 页 | 2.67 MB | 1 年前3
 全栈服务网格 - Aeraki 助你在
Istio 服务网格中管理任何七层流量客户端发起请求时通过一个“batchjob” header标明请求的来源 ,batchjob=true表示该请求来自于批处理任务;batchjob=false表示该 请求来自于用户请求。 ● 运维人员设置请求路由规则,将不同来源的请求路由到不同的服务实例 组进行处理。 #IstioCon Aeraki Demo: 用户请求和批处理任务隔离(Dubbo) 1. 在 dubbo: application 配置中为 Provider 的 deployment 设置 SERVICE_GROUP 环境变量 3. 在 consumer 发起调用时设置 batchJob header 4. 设置相应的 DR 和 VS 流量规则 https://docs.qq.com/doc/DVnlqUVB1ek1laFBQ #IstioCon Aeraki Demo: 地域感知负载均衡(Dubbo) 场景:在开通地域感知负载均衡功能时,consumer provider 的 deployment 中通过环境变量设置其所属地域 3. 在 consumer 的 deployment 中通过 label 声明其所处的 region 和 zone 4. 通过 dr 规则启用 locality load balancing https://docs.qq.com/doc/DVnlqUVB1ek1laFBQ #IstioCon What’s next? 现阶段协议扩展方案面临的挑战:0 码力 | 29 页 | 2.11 MB | 1 年前3
 13 Istio 流量管理原理与协议扩展 赵化冰可观察性:遥测数据、调用跟踪、服务拓扑 通信安全: 服务身份认证、访问鉴权、通信加密 Proxy Application Layer Service 1 Istio 流量管理 – 概览 • 控制面下发流量规则: Pilot • 数据面标准协议:xDS • 集群内Pod流量出入: Sidecar Proxy • 集群外部流量入口:Ingress Gateway • 集群外部流量出口:Egress Gateway(可选 over xDS (https://github.com/istio-ecosystem/consul-mcp) v 通过CRD定义的服务数据 q 自定义流量规则(如何将请求路由到这些服务?) v 通过CRD定义的流量规则 服务数据 流量规则 3 Istio 流量管理 – 控制面 – 服务发现 • K8s Service : Pilot 直接支持 • ServiceEntry: 手动添加 Productpage 发起对 reviews 服务的调用:http://reviews:9080/reviews/0 。 2. 请求被 productpage Pod 的 iptables 出向流量规则拦截,处理后重定向到本地 15001 端口。 3. Envoy 在 15001 端口上监听的 VirtualOutbound listener 收到了该请求。 4. 请求被 VirtualOutbound0 码力 | 20 页 | 11.31 MB | 6 月前3
 Kubernetes容器应用基于Istio的灰度发布实践List/Watch KubeAPIserver上service、 endpoint等资源对象 3. DiscvoeryServer使用 ServcieDiscovery接口上的服务发 现方法和用户配置的规则构造xDS 4. Envoy从Discovery获取xDS,动态 更新 Kubernetes Service Instance Instance Service Endpoint Endpoint0 码力 | 38 页 | 14.93 MB | 1 年前3
 Kubernetes容器应用基于Istio的灰度发布实践List/Watch KubeAPIserver上service、 endpoint等资源对象 3. DiscvoeryServer使用 ServcieDiscovery接口上的服务发 现方法和用户配置的规则构造xDS 4. Envoy从Discovery获取xDS,动态 更新 Kubernet es Service Instance Instance Service Endpoint Endpoint0 码力 | 34 页 | 2.64 MB | 6 月前3
共 5 条
- 1
 













