Kubernetes:所有代理都不起作用

时间:2016-01-26 23:31:35

标签: 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/'

它也发生在我的所有服务上,而不仅仅是发布的服务。

可能出现什么问题?有没有安装?

2 个答案:

答案 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个不同的子网:

  • 一个主持人
  • 一个用于Docker桥(Docker的--bip标志)
  • 一个用于服务(API服务器的--service-cluster-ip-range=

答案 1 :(得分:0)

就我而言,我没有意识到我的主动防火墙只是阻止访问kubernetes所需的端口。快速而粗糙的解决方案是在主节点和所有minion节点上运行systemctl stop firewalld,当然您只需打开所需的端口