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 以使其允许出站网络呼叫?

谢谢,

阿肖克。

4

2 回答 2

4

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

在 2017 年 2 月 22 日之前,存在无法访问 Internet 的错误。

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

于 2017-03-15T21:15:11.097 回答
0

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

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

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

看看它是否有效。

要运行 powershell,请 ssh 到您的主节点 -此处的说明

kubectl exec -it <pod_name> -- powershell
于 2017-03-14T11:57:15.483 回答