Pod 隔离

目录

介绍

Pod 隔离功能支持动态将故障 Pod 从服务流量中排除,同时保持其运行状态。此功能:

  • 防止请求发送到故障端点
  • 在排查期间保持服务可用性
  • 恢复后实现无缝重新接入

核心价值:通过精准的流量管理确保服务持续可靠

功能

  • 一键排除/恢复 Pod
  • 实时健康指标集成
  • 兼容传统服务模式
  • 非破坏性隔离(Pod 保持运行)

优势

精准:针对特定 Pod,无需重启服务
安全:保证剩余 Pod 的法定人数
可视化:集成成功率和延迟监控
合规:符合 Kubernetes 编排规范

隔离 Pod

第一步:访问 Pod 管理

  1. 导航至:服务列表 > 目标服务
  2. 选择 Pod 组 标签页
  3. 通过指标或日志定位目标 Pod

第二步:执行隔离

# 隔离状态注解
metadata:
  annotations:
    asm.cpaas.io/isolated: "true"
UI 控件操作
打开上下文菜单
设置隔离切换隔离状态
设置确认配置

传统服务激活

需求清单

  • Kubernetes v1.18 及以上版本
  • 服务创建于隔离功能发布之前
  • 集群管理员权限

配置更新

  1. 修改 Deployment 标签:

    metadata:
      labels:
        asm.cpaas.io/msselector: product-service
  2. 更新内部路由选择器:

    spec:
      selector:
        asm.cpaas.io/msselector: product-service

监控与验证

关键指标监控面板

指标阈值刷新控制
错误率<5%
延迟<500ms
活跃连接数±10% 变动范围

状态验证

kubectl get endpoints <service-name> -o jsonpath='{.subsets[].notReadyAddresses}'

运行限制

  1. 状态限制

    • 仅影响 Running 状态的 Pod
    • 不包括 Completed 或 CrashLoopBackOff 状态的 Pod
  2. 冲突场景

    • 灰度发布期间禁用
    • 被扩缩容事件覆盖
  3. 持久性

    • Pod 重启后隔离状态重置
    • 恢复后需手动重新隔离