【发布时间】:2017-11-03 03:38:33
【问题描述】:
我有一个使用 k8s 的 ACS Windows 集群设置,通常运行良好。我已经部署了 ASP.NET Core webapi 和工作应用程序容器。这两个容器在本地运行良好,通常在 ACS 中也能正常运行。我可以扩展和扩展它们、部署新版本等。
它们正常工作,但在尝试访问外部 Internet 资源时突然开始生成 DNS 解析错误。我看到的异常包括:
System.Net.Http.WinHttpException:服务器名称或地址无法 得到解决
他们尝试访问的资源正常解析,然后突然停止解析。然后在一段不确定的时间后(几分钟、20 分钟,甚至似乎是几个小时),它们又开始消退,明显断断续续。请注意,这些外部资源是 CosmosDB、Azure 队列和名为 Loggly 的第 3 方日志服务(重点是它们都是大型 Web 属性,在这里没有错)。另请注意,两个容器不一定会同时丢失 DNS。
我尝试在容器内打开一个命令外壳:
kubectl exec -it {podname} -- powershell
然后使用powershell请求站点:
invoke-webrequest -uri www.google.com -outfile test.txt
get-content test.txt
...它工作正常,我可以访问 google.com。所以我不知道如何调试它。 ACS 上的 k8s 是否存在可能在此处起作用的已知问题?
我已将相同的容器部署到一个简单的 Server 2016 主机上,但根本没有发现问题。所以它似乎围绕着 k8s 或 ACS 集群本身。我已经在不同的区域(使用不同的 k8s 版本)重建了 ACS 集群 4 或 5 次,并看到完全相同的问题。
这对我来说是一个主要障碍。外部互联网访问显然是非常基本和核心的功能。没有它,我的 webapi 和工作应用程序完全崩溃了。
【问题讨论】:
标签: kubernetes azure-container-service