Skip to content

Linkerd — 轻量级服务网格

Linkerd vs Istio

特性LinkerdIstio
复杂度
资源消耗低(Rust 代理)高(Envoy)
功能核心功能功能完整
学习曲线平缓陡峭
适用场景中小规模大规模/复杂需求

安装

bash
# 安装 linkerd CLI
curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh

# 预检查
linkerd check --pre

# 安装 Linkerd
linkerd install --crds | kubectl apply -f -
linkerd install | kubectl apply -f -

# 验证
linkerd check

# 安装可视化组件
linkerd viz install | kubectl apply -f -
linkerd viz check

注入 Sidecar

bash
# 命名空间级别自动注入
kubectl annotate namespace production linkerd.io/inject=enabled

# 手动注入
kubectl get deploy my-app -o yaml | linkerd inject - | kubectl apply -f -

# 查看注入状态
linkerd check --proxy -n production

流量观测

bash
# 实时流量统计
linkerd viz stat deploy -n production

# 查看服务拓扑
linkerd viz edges deploy -n production

# 实时 Top 请求
linkerd viz top deploy/my-app -n production

# 打开 Dashboard
linkerd viz dashboard

流量分割(金丝雀)

yaml
apiVersion: split.smi-spec.io/v1alpha1
kind: TrafficSplit
metadata:
  name: my-app-split
spec:
  service: my-app
  backends:
  - service: my-app-stable
    weight: 900m  # 90%
  - service: my-app-canary
    weight: 100m  # 10%

mTLS

Linkerd 默认为所有 Pod 间通信启用 mTLS,无需额外配置:

bash
# 验证 mTLS
linkerd viz edges pod -n production

# 查看证书
linkerd identity -n production pod/my-pod-xxx

本站内容由 褚成志 整理编写,仅供学习参考