
关于
Linkerd 服务网格的生产模式——面向 Kubernetes 的轻量级、安全优先的服务网格。
name: linkerd-patterns description: "Linkerd 服务网格的生产模式 - Kubernetes 的轻量级、安全优先的服务网格。" risk: critical source: community date_added: "2026-02-27"
Linkerd 模式
Linkerd 服务网格的生产模式 - Kubernetes 的轻量级、安全优先的服务网格。
不适用场景
- 任务与 Linkerd 模式无关
- 需要此范围之外的不同领域或工具
操作指南
- 明确目标、约束和所需输入。
- 应用相关最佳实践并验证结果。
- 提供可操作的步骤和验证。
- 如需详细示例,打开
resources/implementation-playbook.md。
何时使用此技能
- 设置轻量级服务网格
- 实现自动 mTLS
- 配置金丝雀部署的流量分割
- 设置服务配置文件以获取每路由指标
- 实现重试和超时
- 多集群服务网格
核心概念
1. Linkerd 架构
┌─────────────────────────────────────────────┐
│ 控制平面 │
│ ┌─────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ destiny │ │ identity │ │ proxy-inject │ │
│ └─────────┘ └──────────┘ └──────────────┘ │
└─────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────┐
│ 数据平面 │
│ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │proxy│────│proxy│────│proxy│ │
│ └─────┘ └─────┘ └─────┘ │
│ │ │ │ │
│ ┌──┴──┐ ┌──┴──┐ ┌──┴──┐ │
│ │ app │ │ app │ │ app │ │
│ └─────┘ └─────┘ └─────┘ │
└─────────────────────────────────────────────┘
2. 关键资源
| 资源 | 用途 | |------|------| | ServiceProfile | 每路由指标、重试、超时 | | TrafficSplit | 金丝雀部署、A/B 测试 | | Server | 定义服务端策略 | | ServerAuthorization | 访问控制策略 |
模板
模板 1:网格安装
# 安装 CLI
brew install linkerd
# 替代方案:下载官方安装脚本,检查后执行
curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install -o /tmp/linkerd-install.sh
sed -n '1,160p' /tmp/linkerd-install.sh
sh /tmp/linkerd-install.sh
# 验证集群
linkerd check --pre
# 安装 CRD
linkerd install --crds | kubectl apply -f -
# 安装控制平面
linkerd install | kubectl apply -f -
# 验证安装
linkerd check
# 安装 viz 扩展(可选)
linkerd viz install | kubectl apply -f -
模板 2:注入命名空间
# 命名空间自动注入
apiVersion: v1
kind: Namespace
metadata:
name: my-app
annotations:
linkerd.io/inject: enabled
---
# 或注入特定部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
annotations:
linkerd.io/inject: enabled
spec:
template:
metadata:
annotations:
linkerd.io/inject: enabled
模板 3:带重试的服务配置文件
apiVersion: linkerd.io/v1alpha2
kind: ServiceProfile
metadata:
name: my-service.my-namespace.svc.cluster.local
namespace: my-namespace
spec:
routes:
- name: GET /api/users
condition:
method: GET
pathRegex: /api/users
responseClasses:
- condition:
兼容工具
Claude CodeCursor
标签
前端开发