You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用Istio的EKS应用中AWS FIS实验执行失败求助

问题分析

在启用Istio Sidecar注入的EKS命名空间中执行AWS FIS故障注入实验(如Pod终止、Pod CPU压力测试)时失败,报错如下:

ERROR: Error captured while executing... Post "https://x.x.x.x:443/api/v1/namespaces/prod/configmaps": dial tcp x.x.x.x:443: connect: connection refused
ERROR: Fault injection has failed with error: Post "https://x.x.x.x:443/api/v1/namespaces/prod/configmaps": dial tcp x.x.x.x:443: connect: connection refused

未启用Istio的命名空间中实验可正常运行,且已尝试通过traffic.sidecar.istio.io/excludeOutboundIPRanges: x.x.x.x/32将Kubernetes API Server IP加入出站排除列表,但问题仍存在。

解决方案

以下是几个可尝试的修复方向:

1. 补全出站排除的IP范围

Kubernetes API Server可能存在多个关联IP(如集群内部ClusterIP、外部负载均衡IP),仅排除单个/32 IP可能覆盖不全。先通过命令获取所有相关IP:

# 获取API Server的ClusterIP
kubectl get service kubernetes -n default -o jsonpath='{.spec.clusterIP}'
# 获取API Server的后端端点IP
kubectl get endpoints kubernetes -n default -o jsonpath='{.subsets[*].addresses[*].ip}'

将获取到的所有IP加入traffic.sidecar.istio.io/excludeOutboundIPRanges,示例:

traffic.sidecar.istio.io/excludeOutboundIPRanges: "10.0.0.1/32,192.168.0.1/32"

2. 排除API Server的443端口

除了IP范围,可通过traffic.sidecar.istio.io/excludeOutboundPorts直接排除443端口,避免Istio拦截到API Server的HTTPS请求:

traffic.sidecar.istio.io/excludeOutboundPorts: "443"

该注解可添加到命名空间级别(影响所有注入Sidecar的Pod),或单独添加到AWS FIS实验使用的Pod模板中。

3. 检查Istio全局出站流量配置

如果命名空间级注解不生效,需检查Istio的全局MeshConfig是否有规则覆盖:

kubectl get configmap istio -n istio-system -o yaml | grep -A 20 "outboundTrafficPolicy"

若mode设置为REGISTRY_ONLY,需确保Kubernetes API Server服务被加入Istio服务注册表,或临时改为ALLOW_ANY(生产环境不推荐,仅用于排查):

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio
  namespace: istio-system
data:
  mesh: |
    outboundTrafficPolicy:
      mode: ALLOW_ANY

4. 为实验Pod禁用Istio注入

如果无需Istio介入实验执行,可在AWS FIS的Pod模板中添加注解跳过注入:

annotations:
  sidecar.istio.io/inject: "false"

这样实验Pod可直接访问Kubernetes API Server,不受Istio拦截影响。

5. 排查网络策略限制

检查是否有Istio AuthorizationPolicy或Kubernetes NetworkPolicy阻止了实验Pod访问API Server:

# 查看命名空间下的Istio授权策略
kubectl get authorizationpolicy -n prod
# 查看命名空间下的Kubernetes网络策略
kubectl get networkpolicy -n prod

若存在限制443端口访问的策略,需调整规则允许实验Pod的流量通过。

内容的提问来源于stack exchange,提问作者aparna_shelar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:42:18