Kubernetes 从服务访问本地主机

Kubernetes 从服务访问本地主机,kubernetes,kubectl,Kubernetes,Kubectl,库伯内特斯是新来的 我在Kubernetes实例上部署了一个私有dockerhub映像。当我执行进入pod时,我可以运行以下操作,以便知道我的docker映像正在运行: root@private-注册号:/#curl 127.0.0.1:8085 你好,世界!root@private-注册:/# 从仪表板上,我可以看到我的服务有一个以8085端口结束的外部端点。当我尝试加载这个时,我得到404。我的服务YAML如下: { "kind": "Service", "apiVersion":

库伯内特斯是新来的

我在Kubernetes实例上部署了一个私有dockerhub映像。当我执行进入pod时,我可以运行以下操作,以便知道我的docker映像正在运行:

root@private-注册号:/#curl 127.0.0.1:8085
你好,世界!root@private-注册:/#
从仪表板上,我可以看到我的服务有一个以8085端口结束的外部端点。当我尝试加载这个时,我得到404。我的服务YAML如下:

{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata": {
    "name": "test",
    "namespace": "default",
    "selfLink": "/api/v1/namespaces/default/services/test",
    "uid": "a1a2ae23-339b-11e9-a3db-ae0f8069b739",
    "resourceVersion": "3297377",
    "creationTimestamp": "2019-02-18T16:38:33Z",
    "labels": {
      "k8s-app": "test"
    }
  },
  "spec": {
    "ports": [
      {
        "name": "tcp-8085-8085-7vzsb",
        "protocol": "TCP",
        "port": 8085,
        "targetPort": 8085,
        "nodePort": 31859
      }
    ],
    "selector": {
      "k8s-app": "test"
    },
    "clusterIP": "******",
    "type": "LoadBalancer",
    "sessionAffinity": "None",
    "externalTrafficPolicy": "Cluster"
  },
  "status": {
    "loadBalancer": {
      "ingress": [
        {
          "ip": "******"
        }
      ]
    }
  }
}

有人能给我指出正确的方向吗。

检查一下kuberntes上的服务,有几种类型:

ClusterIP:仅在集群内创建对服务的访问

NodePort:通过节点上的给定端口访问服务

负载平衡器:可通过LB进行外部维修

我假设你在GKE上跑步


它是什么样的服务,推出的那个

以下命令的输出是什么

卷曲曲曲曲:8085

如果您收到Hello world消息,则表示服务正在将流量正确路由到后端pod

curl HostIP:NODEPORT也应该工作

很可能该服务未绑定到后端pod。你在吊舱上定义了下面的标签吗

labels: {
      "k8s-app": "test"
    }

您没有提到您使用的是哪种类型的负载平衡器或云提供商,但如果您的负载平衡器配置正确,您应该能够在日志中看到,那么您应该能够使用您在此处看到的内容访问您的服务:

"status": {
  "loadBalancer": {
    "ingress": [
      {
      "ip": "******"
      }
    ]
  }
然后,您可以通过运行以下命令进行检查:

$ curl <ip>:<whatever external port your lb is fronting>
$curl:
如果如其他答案所述,本条款可能不适用:

$ curl <clusterIP for svc>:8085
$curl:8085

$curl:31859#节点端口

我正在使用Azure,但一切都由Kubernetes主仪表板管理。相信我正在使用LoadBalancer-已将我的服务YAML添加到原始问题中。您是否有权访问k8s上的CLI,是否可以使用kubectl命令?如果是这样,使用kubectl获取服务,使用它并获取外部ip来访问该服务,如果该服务真的是负载平衡,您可以使用cehck。不,这两个都超时。似乎有什么设置不正确?你是传奇人物!!:D
$ curl <NodeIP>:31859 # NodePort