如何解决Kubernetes pod 间端口耗尽
- .Net 核心 REST 微服务
- .Net core 反向代理
- Istio 代理
流量进入反向代理,经过验证,然后代理到微服务上。这是我使用最频繁的服务,运行大约一天后开始出现此错误。
System.Net.Http.HttpRequestException: Cannot assign requested address
---> System.Net.sockets.socketException (99): Cannot assign requested address
at System.Net.Http.ConnectHelper.ConnectAsync(String host,Int32 port,CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.ConnectHelper.ConnectAsync(String host,CancellationToken cancellationToken)
at System.Net.Http.httpconnectionPool.ConnectAsync(HttpRequestMessage request,Boolean allowHttp2,CancellationToken cancellationToken)
at System.Net.Http.httpconnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request,CancellationToken cancellationToken)
at System.Net.Http.httpconnectionPool.GethttpconnectionAsync(HttpRequestMessage request,CancellationToken cancellationToken)
at System.Net.Http.httpconnectionPool.SendWithRetryAsync(HttpRequestMessage request,Boolean doRequestAuth,CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask,HttpRequestMessage request,CancellationTokenSource cts,Boolean disposeCts)
重新启动 Pod 是我现在唯一的解决方法。我一直在查看节点上的 tcp 统计信息,但是这没有意义,因为杀死 pod 并重新启动会使问题消失。
我还使用最佳实践在 .net core 中使用了 httpclient,没有任何变化。
如有任何想法,我们将不胜感激。
解决方法
进一步收集线索后,我了解到这些错误仅在我们的 REST 微服务重新启动时才会出现(由于内存泄漏)。这个错误在上下文中是有道理的,我高估了问题的严重性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。