<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Service Mesh on 我的技术博客</title><link>https://buvidk1234.github.io/tags/service-mesh/</link><description>Recent content in Service Mesh on 我的技术博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 19 Jul 2026 20:30:00 +0800</lastBuildDate><atom:link href="https://buvidk1234.github.io/tags/service-mesh/index.xml" rel="self" type="application/rss+xml"/><item><title>Istio 流量管理教程</title><link>https://buvidk1234.github.io/posts/istio-traffic-management-tutorial/</link><pubDate>Sun, 19 Jul 2026 20:30:00 +0800</pubDate><guid>https://buvidk1234.github.io/posts/istio-traffic-management-tutorial/</guid><description>&lt;h1 id="istio-流量管理教程"&gt;Istio 流量管理教程&lt;/h1&gt;
&lt;h2 id="适用范围"&gt;适用范围&lt;/h2&gt;
&lt;p&gt;本文基于 Istio 1.30.3 官方文档，说明 Sidecar 模式下的流量管理模型和核心 API。重点是理解 Istio 如何在不修改业务代码的前提下控制服务间流量。&lt;/p&gt;
&lt;p&gt;本文覆盖：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Gateway&lt;/code&gt;：网格边缘的入站或出站代理入口。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VirtualService&lt;/code&gt;：流量匹配、路由、超时、重试、故障注入、镜像。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DestinationRule&lt;/code&gt;：服务子集、负载均衡、连接池、熔断、异常实例剔除、TLS 策略。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ServiceEntry&lt;/code&gt;：把网格外服务加入 Istio 服务注册表。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sidecar&lt;/code&gt;：限制 Envoy Sidecar 的入站端口和出站可见服务范围。&lt;/li&gt;
&lt;li&gt;数据面排障思路：从路由、cluster、endpoint、listener 四类 Envoy 配置定位问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本文不覆盖 Istio 安装、Bookinfo 部署、Ambient 模式、授权策略、Telemetry API、多集群和生产发布流程。&lt;/p&gt;
&lt;h2 id="流量管理模型"&gt;流量管理模型&lt;/h2&gt;
&lt;p&gt;Sidecar 模式下，每个业务 Pod 注入一个 Envoy 容器。业务进程仍然访问 Kubernetes Service 或外部域名，真实转发行为由 Envoy 根据 Istio 配置决定。&lt;code&gt;istiod&lt;/code&gt; 负责监听 Kubernetes 和 Istio 配置资源，把它们转换为 Envoy xDS 配置，并下发给数据面代理。&lt;/p&gt;
&lt;div class="mermaid"&gt;flowchart LR
C[Client] --&gt; IG[Istio Ingress Gateway / Envoy]
IG --&gt; A1[Service A Sidecar]
A1 --&gt; A2[Service A App]
A2 --&gt; A3[Service A Sidecar]
A3 --&gt; B1[Service B Sidecar]
B1 --&gt; B2[Service B App]
ISTIOD[istiod] -. xDS .-&gt; IG
ISTIOD -. xDS .-&gt; A1
ISTIOD -. xDS .-&gt; A3
ISTIOD -. xDS .-&gt; B1&lt;/div&gt;&lt;p&gt;典型 HTTP 调用路径：&lt;/p&gt;</description></item><item><title>Envoy 请求生命周期与静态代理配置教程</title><link>https://buvidk1234.github.io/posts/envoy-tutorial/</link><pubDate>Sun, 19 Jul 2026 18:00:00 +0800</pubDate><guid>https://buvidk1234.github.io/posts/envoy-tutorial/</guid><description>&lt;h1 id="envoy-请求生命周期与静态代理配置教程"&gt;Envoy 请求生命周期与静态代理配置教程&lt;/h1&gt;
&lt;h2 id="适用范围"&gt;适用范围&lt;/h2&gt;
&lt;p&gt;本文基于 Envoy v1.39.0 官方文档的 &lt;code&gt;Life of a Request&lt;/code&gt;、快速开始、HTTP 路由、Admin、xDS 和访问日志文档，说明 Envoy 作为 HTTP 反向代理时的核心模型、静态配置方式、请求处理流程和排障入口。&lt;/p&gt;
&lt;p&gt;示例目标：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本地启动一个后端 HTTP 服务。&lt;/li&gt;
&lt;li&gt;Envoy 监听 &lt;code&gt;10000&lt;/code&gt; 端口。&lt;/li&gt;
&lt;li&gt;Envoy 将所有 HTTP 请求转发到 &lt;code&gt;backend:80&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;Envoy Admin 监听 &lt;code&gt;9901&lt;/code&gt; 端口，用于查看运行时配置和指标。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心术语"&gt;核心术语&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;downstream&lt;/code&gt;：连接到 Envoy 的一侧。对于边缘代理，通常是外部客户端；对于 sidecar，可能是本地应用或服务网格内的其他代理。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;upstream&lt;/code&gt;：Envoy 转发请求的目标端。通常是业务服务实例。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;listener&lt;/code&gt;：绑定 IP 和端口，接收 TCP 连接或 UDP 数据报。一个 Envoy 进程可以有多个 listener。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;filter chain&lt;/code&gt;：Envoy 的处理管线。listener filter 处理连接元数据，network filter 处理 L3/L4 字节流，HTTP filter 处理 HTTP 请求/响应流。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;HTTP connection manager&lt;/code&gt;：HTTP 代理场景中的核心 network filter，负责协议编解码、路由匹配、HTTP filter chain 管理、访问日志、统计指标和本地响应。&lt;/p&gt;</description></item></channel></rss>