Kubernetes 从服务访问本地主机
库伯内特斯是新来的 我在Kubernetes实例上部署了一个私有dockerhub映像。当我执行进入pod时,我可以运行以下操作,以便知道我的docker映像正在运行: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":
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