Sidecar 配置管理

目录

介绍

Sidecar 配置使得在 Istio 服务网格中能够精确控制 Envoy 代理的行为。该功能:

  • 定义流量策略的执行范围
  • 优化代理资源利用率
  • 实现命名空间级别的访问控制
  • 支持分层配置策略

核心价值:通过细粒度的流量管理平衡服务网格的性能与安全

特性

  • 默认的集群范围配置
  • 命名空间特定的自定义规则
  • 通配符模式匹配
  • 优先级覆盖机制

优势

性能优化:减少代理处理开销
安全控制:限制服务暴露范围
灵活性:多种命名空间匹配模式
兼容性:全面支持 Istio API

默认配置管理

配置参数

参数格式示例
Egress Hostsnamespace/dnsNameistio-system/*

更新流程

  1. 进入:Service Mesh > Meshes
  2. 选择目标 mesh > Sidecar Config 标签页
  3. 找到集群 > 点击编辑图标
  4. 配置出口主机:
    • 从下拉菜单选择命名空间
    • 选择匹配模式:
      • */* 集群范围
      • ./* 当前命名空间
      • 自定义命名空间
  5. 点击 确认

限制条件

  • 必须位于 istio-system 命名空间
  • 影响所有未自定义配置的命名空间

自定义配置设置

配置模板

apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: ns-custom
  namespace: target-ns
spec:
  egress:
  - hosts:
    - "dev/*"
    - "prod/db-service"

实施步骤

  1. 访问 mesh 详情页面
  2. 进入 Sidecar Config 标签页
  3. 点击 创建 Sidecar 配置
  4. 选择目标命名空间
  5. 配置出口主机模式:
    • 使用 * 通配符进行广泛匹配
    • . 表示当前命名空间
  6. 验证优先级覆盖

配置示例

示例 1:命名空间隔离

apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: ns-prod
  namespace: prod
spec:
  egress:
  - hosts:
    - "prod/*"  # 当前命名空间
    - "monitoring/*"  # 指定命名空间

示例 2:全集群访问

apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: default
  namespace: istio-system
spec:
  egress:
  - hosts:
    - "*/*"  # 所有命名空间

参数说明

参数必填类型描述
namespaceString默认配置必须为 istio-system 命名空间
egressArray包含出口主机模式数组
hostsArraynamespace/dnsName 格式,支持通配符匹配

操作限制

  1. 命名空间绑定

    • 自定义配置仅影响指定命名空间
    • 默认配置需位于 istio-system 命名空间
  2. 模式规则

    • 通配符(*)仅允许出现在最左侧的 DNS 组件
    • 例如 prod/*.svc.cluster.local 匹配 prod 命名空间的服务
  3. 更新延迟

    • 配置变更在 60 秒内生效
    • 需使用 Istio 1.9 及以上控制平面