使用Kubernetes的Azure容器服务 - 容器无法访问Internet

时间:2017-03-13 21:53:29

标签: kubernetes azure-container-service

我通过以下链接使用Kubernetes创建了一个ACS(Azure容器服务):https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-windows-walkthrough&我按照以下链接部署了我的.net 4.5应用:https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-ui。我的应用程序需要访问Azure SQL和其他资源,这些资源属于我帐户中的其他一些资源组,但我的容器无法对网络进行任何外拨调用 - 无论是在azure还是在Internet上。我打开了一些端口以允许出站连接,这也没有帮助。

当我创建ACS时,它是否带有网关或我应该创建一个?如何配置ACS以允许出站网络呼叫?

谢谢,

阿肖克。

2 个答案:

答案 0 :(得分:4)

如果要连接到10.0.0.0/16范围以外的IP地址(即您未连接到VNET上的其他服务),则出站Internet访问可以从Azure容器服务(ACS)Kubernetes Windows群集中运行。

在2017年2月22日之前,有一个无法访问互联网的错误。

请尝试从ACS-Engine进行最新部署:https://github.com/Azure/acs-engine/blob/master/docs/kubernetes.windows.md。,如果您仍然看到此问题,请在那里打开一个问题,我们(Azure容器服务)可以帮助您进行调试。

答案 1 :(得分:0)

对于与群集内部运行的服务进行通信,您可以使用Kube-dns,它允许您通过其名称访问服务。您可以在https://kubernetes.io/docs/admin/dns/

找到更多详细信息

对于外部通信(互联网),无需创建任何网关等。默认情况下,容器内的容器可以进行出站连接。要验证这一点,您可以在其中一个容器中运行powershell并尝试运行

wget http://www.google.com -OutFile testping.txt
Get-Contents testping.txt

看看它是否有效。

要运行powershell,请将ssh发送到主节点 - instructions here

kubectl exec -it <pod_name> -- powershell