首页 文章

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

提问于
浏览
1

我通过以下链接使用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

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

    在2017年2月22日之前,有一个无法访问Internet的错误 .

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

  • 4

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

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

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

    并看看它是否有效 .

    要运行powershell,ssh到主节点 - instructions here

    kubectl exec -it <pod_name> -- powershell
    

相关问题