所以我有如下服务:
{
"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 :(得分:2)
查看您发布的错误,似乎无法将流量从主路由到节点的Docker子网。验证此问题的最简单方法是在主服务器上打开一个shell并在 podIP:daemonPort 上执行请求:curl -I http://192.168.182.132:3000
群集中的每个节点都应该能够与每个其他节点进行通信,并且每个Docker子网都应该是可路由的。对于大多数部署,您需要设置一个额外的网络结构来实现这一点,如法兰绒或编织。
查看Getting started from Scratch >> Network
其他一切都很有趣。您的服务使用的群集IP(192.168.182.76)和端点的pod IP(192.168.182.132)似乎位于同一子网中。但是,您需要3个不同的子网:
--bip
标志)--service-cluster-ip-range=
)答案 1 :(得分:0)
就我而言,我没有意识到我的主动防火墙只是阻止访问kubernetes所需的端口。快速而粗糙的解决方案是在主节点和所有minion节点上运行systemctl stop firewalld
,当然您只需打开所需的端口