Sidecar 配置管理
目录
介绍
Sidecar 配置使得在 Istio 服务网格中能够精确控制 Envoy 代理的行为。该功能:
- 定义流量策略的执行范围
- 优化代理资源利用率
- 实现命名空间级别的访问控制
- 支持分层配置策略
核心价值:通过细粒度的流量管理平衡服务网格的性能与安全
特性
- 默认的集群范围配置
- 命名空间特定的自定义规则
- 通配符模式匹配
- 优先级覆盖机制
优势
性能优化:减少代理处理开销
安全控制:限制服务暴露范围
灵活性:多种命名空间匹配模式
兼容性:全面支持 Istio API
默认配置管理
配置参数
参数 | 格式 | 示例 |
---|
Egress Hosts | namespace/dnsName | istio-system/* |
更新流程
- 进入:Service Mesh > Meshes
- 选择目标 mesh > Sidecar Config 标签页
- 找到集群 > 点击编辑图标

- 配置出口主机:
- 从下拉菜单选择命名空间
- 选择匹配模式:
*/*
集群范围
./*
当前命名空间
- 自定义命名空间
- 点击 确认
限制条件:
- 必须位于
istio-system
命名空间
- 影响所有未自定义配置的命名空间
自定义配置设置
配置模板
apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
name: ns-custom
namespace: target-ns
spec:
egress:
- hosts:
- "dev/*"
- "prod/db-service"
实施步骤
- 访问 mesh 详情页面
- 进入 Sidecar Config 标签页
- 点击 创建 Sidecar 配置
- 选择目标命名空间
- 配置出口主机模式:
- 使用
*
通配符进行广泛匹配
.
表示当前命名空间
- 验证优先级覆盖
配置示例
示例 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:
- "*/*" # 所有命名空间
参数说明
参数 | 必填 | 类型 | 描述 |
---|
namespace | 是 | String | 默认配置必须为 istio-system 命名空间 |
egress | 是 | Array | 包含出口主机模式数组 |
hosts | 是 | Array | namespace/dnsName 格式,支持通配符匹配 |
操作限制
-
命名空间绑定:
- 自定义配置仅影响指定命名空间
- 默认配置需位于
istio-system
命名空间
-
模式规则:
- 通配符(*)仅允许出现在最左侧的 DNS 组件
- 例如
prod/*.svc.cluster.local
匹配 prod 命名空间的服务
-
更新延迟:
- 配置变更在 60 秒内生效
- 需使用 Istio 1.9 及以上控制平面