我们正在AWS(使用KOPS设置)的Kubernetes(1.9.3)上运行Web API应用程序。该应用程序是一个Deployment,由服务(类型:LoadBalancer)表示,该服务实际上是AWS上的ELB(v1)。 这通常可以工作-除了某些数据包(HTTP请求的片段)在客户端<->应用容器之间的某个位置“延迟”。 (在以ELB结尾的HTTP和HTTPS中)。
从节点端:
(注意:服务器端几乎所有数据包都重复发送3次)
我们使用keep-alive,因此tcp套接字是打开的,请求到达并很快返回。然后问题发生了:
在客户端:
我已经从计算机上运行了一些流量,将其记录在客户端以查看问题的另一端,但是并不能100%地确定它代表了真正的客户端。
这仅在负载下发生。
据我了解,这是ELB和Kube-Proxy之间的某个地方,但是我一无所知,急于寻求帮助。
这是Kube-Proxy运行的参数:
Commands: /bin/sh -c mkfifo /tmp/pipe; (tee -a /var/log/kube-proxy.log < /tmp/pipe & ) ; exec /usr/local/bin/kube-proxy --cluster-cidr=100.96.0.0/11 --conntrack-max-per-core=131072 --hostname-override=ip-10-176-111-91.ec2.internal --kubeconfig=/var/lib/kube-proxy/kubeconfig --master=https://api.internal.prd.k8s.local --oom-score-adj=-998 --resource-container="" --v=2 > /tmp/pipe 2>&1
我们将Calico用作CNI:
到目前为止,我已经尝试过:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
-问题仍然存在。E0801 04:10:57.269475 1Reflector.go:205] k8s.io/kubernetes/pkg/client/informers/informers_genic/internalversion/factory.go:85:无法列出* core。端点:获取{{3 }}:拨打tcp:在10.176.0.2:53上查找api.internal.prd.k8s.local:没有这样的主机
...和...
E0801 04:09:48.075452 1 proxier.go:1667]无法执行iptables-restore:退出状态1(iptables-restore:第7行失败 ) I0801 04:09:48.075496 1 proxier.go:1669]在iptables-restore失败后关闭本地端口
我找不到任何描述此类问题的信息,将不胜感激。欢迎提供有关如何继续和进行故障排除的想法。
最好, A