我有一個節點在我的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
任何人有任何建議嗎?
您仍然需要指定一個帶有服務的端口。我認爲'curl http:// my-service/api/foo'會默認使用80端口,但你已經打開8082 –
是的,我試過了,仍然沒有運氣。我知道我所有的Kube節點都可以到達外部服務節點,因爲我可以從任何節點進行卷曲並且可以很好地到達外部服務。然而,Pod的側面捲曲只是超時。如果有問題,我正在使用1.2版本的alpha-6。 – tbs