Istio:调用许可 webhook 失败 地址不允许

Ash*_*mat 2 amazon-web-services kubernetes istio amazon-eks

我在为示例 bookinfo 应用程序创建网关时收到以下错误

发生内部错误:调用准入 Webhook“pilot.validation.istio.io”失败:发布 https://istio-galley.istio-system.svc:443/admitpilot?timeout=30s:地址不允许

我使用两个节点组(每个节点组有两个实例)创建了一个 EKS poc 集群,一个节点组包含 t2.medium,另一个节点组包含我的开发 AWS 账户中的 t2.large 类型实例,使用两个子网,其中 /26 子网采用默认 VPC -EKS提供的CNI

但随着集群随着多个服务的运行而增长,我开始面临 IP 不可用的问题(根据文档默认 vpc-cni 驱动程序将 Pod 视为 EC2 实例)

为了避免同样的情况,我按照以下帖子将网络从默认更改为编织

https://medium.com/codeops/installing-weave-cni-on-aws-eks-51c2e6b7abc8

由于同样的原因,我已经解决了 IP 不可用的问题,

现在,将网络从 vpc-cni 重新配置为 weave 后

我开始根据使用 Istio 配置的服务网格的主题行遇到上述问题

网格内运行着一些服务,并且还集成了 kiali、prometheus、jaeger。

我尝试查看 Github(https://github.com/istio/istio/issues/9998)和文档(https://istio.io/docs/ops/setup/validation/),但无法获取正确有效的答案。

如果有人遇到这个问题并对此有部分/完整的解决方案,请告诉我。

Ric*_*ico 5

这“似乎”与从 AWS CNI 到 weave 的切换有关。CNI 使用您的 VPC 的 IP 范围,而 weave 使用其自己的地址范围(对于 pod),因此可能存在来自 AWS CNI 的剩余 iptables 规则。

发生内部错误:调用准入 Webhook“pilot.validation.istio.io”失败:发布https://istio-galley.istio-system.svc:443/admitpilot?timeout=30s:地址不允许

上面的消息意味着无论istio-galley.istio-system.svc解析到的地址在 K8s 集群内部都不是有效的 IP 地址。所以我也想看看它能解决什么问题。(可能与coreDNS有关)。

您还可以尝试以下这些步骤

基本上,(引用)

  • kubectl 删除 ds aws-node -n kube-system
  • 删除每个节点上的 /etc/cni/net.d/10-aws.conflist
  • 编辑实例安全组以允许 6873、6874 端口上的 UDP、TCP
  • 刷新 iptables、nat、mangle、过滤器
  • 重新启动 kube-proxy pod
  • 应用 weave-net 守护进程集
  • 删除现有的 pod,以便在 Weave pod CIDR 的地址空间中重新创建。

此外,您可以尝试使用 weave 从头开始​​重新安装所有内容。

希望能帮助到你!