Pod 隔离
引言
Pod 隔离能够动态地将故障的 Pods 从服务流量中排除,同时保持其运行状态。该功能具有以下优点:
- 防止对缺陷端点的请求失败
- 在故障排除期间维护服务可用性
- 允许在恢复后无缝重新集成
核心价值:通过有针对性的流量管理确保持续的服务可靠性
特性
- 一键式 Pod 排除/包含
- 实时健康指标集成
- 传统服务兼容模式
- 无损隔离(Pod 保持运行)
优势
精准性:在不重启服务的情况下,针对特定 Pods
安全性:维护剩余 Pods 的法定人数
可视性:集成的成功率/延迟跟踪
合规性:在 Kubernetes 编排中正常工作
隔离 Pods
步骤 1:访问 Pod 管理
- 导航:服务列表 > 目标服务
- 选择 Pod 组 标签
- 通过指标或日志找到目标 Pod
步骤 2:执行隔离
# 隔离状态注释
metadata:
annotations:
asm.cpaas.io/isolated: "true"
UI 控件 | 操作 |
---|
 | 打开上下文菜单 |
设置隔离 | 切换隔离状态 |
设置 | 确认配置 |
传统服务激活
需求清单
- Kubernetes v1.18+
- 在隔离功能发布之前创建的服务
- 集群管理员权限
配置更新
- 修改部署标签:
metadata:
labels:
asm.cpaas.io/msselector: product-service
- 更新内部路由选择器:
spec:
selector:
asm.cpaas.io/msselector: product-service
监控与验证
关键指标仪表盘
指标 | 阈值 | 刷新控制 |
---|
错误率 | <5% |  |
延迟 | <500ms |  |
活跃连接 | ±10% 波动 |  |
状态验证
kubectl get endpoints <service-name> -o jsonpath='{.subsets[].notReadyAddresses}'
操作约束
-
状态限制:
- 仅影响运行状态的 Pods
- 排除完成/CrashLoopBackOff 状态的 Pods
-
冲突场景:
-
持久性: