2016-03-15 109 views
4

我有一个节点在我的Kubernetes群集之外运行一个Web服务,我需要从一个Pod中访问。说明文档中提到使用服务没有选择在这里: http://kubernetes.io/docs/user-guide/services/访问外部服务

因此,我创建像一个服务:

{ 
    "kind": "Service", 
    "apiVersion": "v1", 
    "metadata": { 
     "name": "my-service" 
    }, 
    "spec": { 
     "ports": [ 
      { 
       "protocol": "TCP", 
       "port": 8082, 
       "targetPort": 8082 
      } 
     ] 
    } 
} 

然后创建我的终点:

{ 
    "kind": "Endpoints", 
    "apiVersion": "v1", 
    "metadata": { 
     "name": "my-service" 
    }, 
    "subsets": [ 
     { 
      "addresses": [ 
       { "ip": "128.115.198.7" } 
      ], 
      "ports": [ 
       { "port": 8082 } 
      ] 
     } 
    ] 
} 

测试应用程序:

apiVersion: v1 
kind: Pod 
metadata: 
    name: ta-p 
spec: 
    restartPolicy: Never 
    containers: 
    - name: ta-c 
    image: "centos:7" 
    command: ["/bin/bash","-c", "sleep 100000"] 
    nodeSelector: 
    node: "kube-minion-1" 

远程进入Pod操作:

kubectl exec ta-p -c ta-c -i --tty -- /bin/bash 

然后,每当我kubectl exec到我荚容器和尝试ping或卷曲我的服务,像这样:

curl http://my-service/api/foo 

超时。我已验证DNS已设置并正常工作。然而,我甚至尝试使用直接绑定到该服务的IP地址:

curl http://10.0.124.106:8082/api/foo 

任何人有任何建议吗?

+1

您仍然需要指定一个带有服务的端口。我认为'curl http:// my-service/api/foo'会默认使用80端口,但你已经打开8082 –

+0

是的,我试过了,仍然没有运气。我知道我所有的Kube节点都可以到达外部服务节点,因为我可以从任何节点进行卷曲并且可以很好地到达外部服务。然而,Pod的侧面卷曲只是超时。如果有问题,我正在使用1.2版本的alpha-6。 – tbs

回答

0

不知道发生了什么事。看来我的Kube集群一定处于一种尴尬的状态。我重新启动群集,它现在正在运行...

相关问题