Istio:不允许失败的呼叫接纳Webhook地址

时间:2019-07-31 13:56:24

标签: amazon-web-services kubernetes istio amazon-eks

为示例bookinfo应用程序创建网关时出现以下错误

  

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

我在我的dev AWS帐户中使用两个节点组(每个节点有两个实例)创建了一个EKS poc集群,每个节点组带有t2.medium,另一个具有t2.large实例,并使用了两个子网/ 26子网。并使用EKS提供的默认VPC-CNI

但是随着群集的增长和运行多种服务的增加,我开始面临IP不可用的问题(按照文档默认的vpc-cni驱动程序将pod视为EC2实例)

为避免这种情况,我遵循以下帖子,将网络从默认更改为编织

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

因为相同,我已经解决了IP不可用问题,

现在从vpc-cni重新配置网络以进行编织

对于使用Istio配置的服务网格,按照主题行开始出现上述问题

网状网络中运行着一些服务,并且还集成了基阿里(kiali),普罗米修斯(prometheus)和贾格(jaeger)。

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

如果有人遇到此问题并且对此有部分/全部解决方案,请让我。

1 个答案:

答案 0 :(得分:1)

此“似乎”与从AWS CNI切换到编织有关。 CNI使用您的VPC的IP范围,而weave使用其自己的地址范围(用于Pod),因此,例如,AWS CNI可能会保留其他iptables规则。

  

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

以上消息表示,在您的K8s群集内部,istio-galley.istio-system.svc解析的任何地址都不是有效的IP地址。因此,我还将尝试查看解决方案。 (它可能与coreDNS有关。)

您也可以尝试以下these steps;

基本上,(引用)

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

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

希望有帮助!