我在coreos上运行kubernetes单节点。
我创建了一个运行python应用程序并公开http端点的pod。
我创建了一个暴露HTTP端点的kubernetes服务。我已经使用NodePort公开了该服务,并且可以从集群外部成功调用它。
我要尝试的是从docker容器调用HTTP服务。为了测试,我只是使用相同的运行容器并使用curl。
我可以docker exec进入运行服务的docker容器中。“ my-service”的nslookup解析为IP地址。因此,我很高兴DNS服务注册可以正常工作。(我还检查了该服务的ENV变量是否存在-并且确实存在并且与从返回的值相同nslookup)
但是,如果我尝试:
curl http://my-service:9042/status
Run Code Online (Sandbox Code Playgroud)
它只是挂起而没有任何响应。(端口9042是正确的端口,状态是有效的资源)
我假设我确实缺少一些明显的东西。任何建议都受到热烈欢迎。
更新:
curl -v的响应是:
root@lake-cluster-manager:/# curl -v http://lake-service:9042/status
* Hostname was NOT found in DNS cache
* Trying 10.3.0.128...
Run Code Online (Sandbox Code Playgroud)
nslookup的输出是:
root@lake-cluster-manager:/# nslookup lake-service
Server: 10.3.0.10
Address: 10.3.0.10#53
Name: lake-service.default.svc.cluster.local
Address: 10.3.0.128
Run Code Online (Sandbox Code Playgroud) kubernetes ×1