2016-03-15 145 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集羣一定處於一種尷尬的狀態。我重新啓動羣集,它現在正在運行...