Azure ACS - Kubernetes inter-pod通信

时间:2017-04-28 16:13:56

标签: azure-container-service

我做了一个ACS实例。

az acs create --orchestrator-type=kubernetes \
          --resource-group $group \
          --name $k8s_name \
          --dns-prefix $kubernetes_server \
          --generate-ssh-keys

az acs kubernetes get-credentials --resource-group $group --name $k8s_name

并运行helm init它已经配置了分蘖吊舱。然后我运行helm install stable/redis并启动并运行redis部署(貌似)。

我可以kube exec -it进入redis广告管理系统,并且可以在0.0.0.0上看到它具有约束力,并且可以使用redis-cli -h localhostredis-cli -h <pod_ip>登录,但不能使用redis-cli -h <service_ip>登录(来自kubectl get svc。)

kube dashboard

如果我运行另一个pod(这是我遇到此问题的方式),我可以ping redis.default并显示DNS解析为正确的服务IP但没有给出响应。当我telnet <service_ip> 6379redis-cli -h <service_ip>时,它会无限期挂起。

shell

我对如何进一步调试感到有点失落。我无法进入节点以查看docker正在做什么。

另外,我最初尝试使用标准的Alphine-Redis图像,因此掌舵是一个后备。我昨天试了一下,掌舵一个工作,但手册没有。今天这样做(在一个新建的ACS集群上),它们都没有工作。

我将再次启动集群以查看它是否可以稳定重现,但我非常有信心可疑的事情正在发生。

PS - 我在一个不同的区域有一个重叠子网10.0.0.0/16的VNet,当我进入地址范围时,我会收到一个警告,那里有冲突,可能会影响它吗?

<EDIT>

一些新见解......这与基于阿尔卑斯山的图像有关(我们一直致力于使用它)...

所以kube run a --image=nginx(基于ubuntu)我可以安装shell,安装telnet并连接到redis服务。

但是,例如kubectl run c --image=rlesouef/alpine-redis然后shell,并且telnet不能用于相同的redis服务。

</EDIT>

1 个答案:

答案 0 :(得分:2)

最近修复了一个类似的问题https://github.com/Azure/acs-engine/issues/539。要验证的一件事是检查nslookup是否在容器中工作。