用途:为 Kubernetes 部署轻量、以安全为先的 Linkerd 服务网格,提供生产级配置模式。适用场景包括搭建轻量服务网格、启用自动 mTLS、用流量拆分做金丝雀发布、为按路由指标配置 ServiceProfile、实现重试与超时、以及多集群服务网格。
核心概念:Linkerd 分为控制平面(destiny、identity、proxy-inject)与数据平面(每 Pod 的 proxy 与应用容器)。关键资源有 ServiceProfile(按路由指标、重试、超时)、TrafficSplit(金丝雀与 A/B 测试)、Server 与 ServerAuthorization(服务端策略与访问控制)。
主要用法:先安装 CLI(curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh),依次执行 linkerd check --pre、安装 CRD(linkerd install --crds | kubectl apply -f -)、控制平面(linkerd install | kubectl apply -f -),再用 linkerd check 验证,可选安装 viz 扩展。通过命名空间或 Deployment 上的 linkerd.io/inject: enabled 注解启用自动注入。ServiceProfile 可定义路由条件、responseClasses、isRetryable 与 timeout,并设置 retryBudget(如 retryRatio 0.2、minRetriesPerSecond 10、ttl 10s)。TrafficSplit 用权重(如 900m/100m)分配流量。策略用 policy.linkerd.io 的 Server、ServerAuthorization 及 HTTPRoute 定义基于 mTLS serviceAccount 或未认证网络 CIDR 的访问。多集群使用 linkerd multicluster install/link,并以 mirror.linkerd.io/exported=true 标签导出服务。
监控与调试:linkerd viz top/routes/stat/edges、dashboard;linkerd check --proxy、kubectl logs -c linkerd-proxy、linkerd identity、linkerd viz tap 等命令。
限制与注意事项:资料强调每次变更后都应执行 linkerd check;避免过度配置,Linkerd 默认值较合理;不要忽略 ServiceProfile,否则无法启用高级功能;按路由设置合适超时;POST 等请求默认不可重试。资料未提供价格、授权许可、版本兼容性及具体性能数据。