Azure ACS Kubernetes Windows 容器延迟访问互联网
Azure ACS Kubernetes Windows Containers delayed access to internet
昨天 2017 年 4 月 19 日,我使用 Azure 门户为 windows 个容器创建了一个 Azure ACS。我发现每当我部署到它时,容器在 2-3 分钟内无法连接到互联网。我登录到其中一个节点并从同一图像手动创建了一个容器,它立即可以访问互联网。
我看到的一个区别是 kubernetes 拥有的容器包含一个额外的透明网络,而普通 docker 容器只有一个 nat 网络。
这是我的测试代码运行
static void Main(string[] args)
{
var connectedStopWatch = new Stopwatch();
var disconnectedStopWatch = new Stopwatch();
while (true)
{
try
{
using (var wc = new WebClient())
{
wc.DownloadString("http://google.com");
connectedStopWatch.Start();
}
Console.WriteLine($"Connected for {connectedStopWatch.ElapsedMilliseconds} ms");
}
catch (WebException e)
{
connectedStopWatch.Stop();
disconnectedStopWatch.Start();
Console.WriteLine($"Disconnected for {disconnectedStopWatch.ElapsedMilliseconds} ms");
}
Thread.Sleep(5000);
}
}
Docker 文件
FROM microsoft/windowsservercore
COPY ConnectionTest.exe /
ENTRYPOINT ConnectionTest.exe
有谁知道容器访问互联网延迟的原因是什么?
这是一个在此处跟踪的已知问题:https://github.com/Azure/acs-engine/issues/519. We are testing a fix for this issue here, but will soon integrate into acs-engine: https://github.com/JiangtianLi/acs-engine/commits/jiangtli-winnat。
昨天 2017 年 4 月 19 日,我使用 Azure 门户为 windows 个容器创建了一个 Azure ACS。我发现每当我部署到它时,容器在 2-3 分钟内无法连接到互联网。我登录到其中一个节点并从同一图像手动创建了一个容器,它立即可以访问互联网。
我看到的一个区别是 kubernetes 拥有的容器包含一个额外的透明网络,而普通 docker 容器只有一个 nat 网络。
这是我的测试代码运行
static void Main(string[] args)
{
var connectedStopWatch = new Stopwatch();
var disconnectedStopWatch = new Stopwatch();
while (true)
{
try
{
using (var wc = new WebClient())
{
wc.DownloadString("http://google.com");
connectedStopWatch.Start();
}
Console.WriteLine($"Connected for {connectedStopWatch.ElapsedMilliseconds} ms");
}
catch (WebException e)
{
connectedStopWatch.Stop();
disconnectedStopWatch.Start();
Console.WriteLine($"Disconnected for {disconnectedStopWatch.ElapsedMilliseconds} ms");
}
Thread.Sleep(5000);
}
}
Docker 文件
FROM microsoft/windowsservercore
COPY ConnectionTest.exe /
ENTRYPOINT ConnectionTest.exe
有谁知道容器访问互联网延迟的原因是什么?
这是一个在此处跟踪的已知问题:https://github.com/Azure/acs-engine/issues/519. We are testing a fix for this issue here, but will soon integrate into acs-engine: https://github.com/JiangtianLi/acs-engine/commits/jiangtli-winnat。