2016-01-26 48 views
1

所以我有一個類似的服務如下:Kubernetes:所有代理工作不

{ 
"kind": "Service", 
    "apiVersion": "v1", 
    "metadata": { 
    "name": "monitoring-grafana", 
    "namespace": "kube-system", 
    "selfLink": "/api/v1/namespaces/kube-system/services/monitoring-grafana", 
    "uid": "be0f72b2-c482-11e5-a22c-fa163ebc1085", 
    "resourceVersion": "143360", 
    "creationTimestamp": "2016-01-26T23:15:51Z", 
    "labels": { 
     "kubernetes.io/cluster-service": "true", 
     "kubernetes.io/name": "monitoring-grafana" 
    } 
    }, 
    "spec": { 
    "ports": [ 
     { 
     "protocol": "TCP", 
     "port": 80, 
     "targetPort": 3000, 
     "nodePort": 0 
     } 
    ], 
    "selector": { 
     "name": "influxGrafana" 
    }, 
    "clusterIP": "192.168.182.76", 
    "type": "ClusterIP", 
    "sessionAffinity": "None" 
    }, 
    "status": { 
    "loadBalancer": {} 
    } 

然而,每當我試圖通過代理API來訪問它,它總是失敗,此反應。

http://10.32.10.44:8080/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana/ 

Error: 'dial tcp 192.168.182.132:3000: getsockopt: no route to host' 
Trying to reach: 'http://192.168.182.132:3000/' 

它發生在我所有的服務上,而不僅僅是發佈的。

可能會出現什麼問題?是沒有安裝的東西?

+0

有幾個問題:您在哪裏運行羣集?你可以代理節點和/或豆莢(不是服務),還是所有的代理功能都被破壞了?你在主節點上運行'kube-proxy'進程嗎? –

+0

我認爲整個代理服務器都失敗了,但是我看到kube-proxy在節點上運行,並且在-cli上有正確的主端點。我不是100%清楚代理某個特定的節點? – adrian

+0

你是否解決了這個問題?因爲我面臨着類似的情況。 –

回答

2

望着錯誤你貼好像流量無法從被路由到您的節點的泊塢子網。驗證這一點的最簡單方法是在你的podIP打開你的主外殼和執行的請求:daemonPortcurl -I http://192.168.182.132:3000

集羣中的每個節點應能夠與所有其他節點進行通信,並且每一個碼頭工人子網應該可路由。對於大多數部署,您需要設置額外的網絡結構以實現此目的,如法蘭絨或織布。

看看Getting started from Scratch >> Network


別的東西是有趣的。您的服務使用的羣集IP(192.168.182.76)和端點的IPOD(192.168.182.132)似乎處於相同的子網中。然而,你需要3個不同的子網:

  • 一個主機
  • 一個用於泊塢橋(泊塢窗--bip標誌)
  • 一個用於服務(API服務器的--service-cluster-ip-range=
0

在我的情況下,我沒有意識到我有防火牆只是防止訪問kubernetes所需的端口。快速粗略的解決方案是在主節點和所有minion節點上運行systemctl stop firewalld,當然,您可以直接打開需要的端口