我已经制作了一个 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 pod,并且可以看到它已绑定并且可以使用and0.0.0.0
登录,但不能 (从.)redis-cli -h localhost
redis-cli -h <pod_ip>
redis-cli -h <service_ip>
kubectl get svc
如果我运行另一个 pod(这就是我遇到这个问题的方式),我可以ping redis.default
并且它显示 DNS 解析到正确的服务 IP,但没有给出响应。当我telnet <service_ip> 6379
或redis-cli -h <service_ip>
它无限期挂起。
我对如何进一步调试有点茫然。我无法通过 ssh 进入节点以查看 docker 在做什么。
此外,我最初使用标准的 Alphine-Redis 映像进行了尝试,因此 helm 是一个后备。我昨天试过了,掌舵的可以用,但是手动的不行。今天这样做(在一个新建的 ACS 集群上)它根本不工作。
我将再次启动集群以查看其是否稳定复制,但我非常有信心正在发生一些可疑的事情。
PS - 我在不同区域有一个具有重叠子网 10.0.0.0/16 的 VNet,当我进入地址范围时,我确实收到警告说存在冲突,这会影响它吗?
<EDIT>
一些新的见解......这与基于高山的图像有关(我们一直致力于使用)......
所以kube run a --image=nginx
(这是基于 ubuntu 的),我可以安装 telnet 并连接到 redis 服务。
但是,例如kubectl run c --image=rlesouef/alpine-redis
然后shell in,并且telnet 不适用于相同的redis 服务。
</EDIT>