9

eks 服务器端点是xxxxxxxxxxx.xxx.eks.amazonaws.com,我创建了一个包含部署和服务对象的 yml 文件。

[ec2-user@ip-]$ kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
fakeserver   NodePort    10.100.235.246   <none>        6311:30002/TCP   1h
kubernetes   ClusterIP   10.100.0.1       <none>        443/TCP          1d

当我浏览xxxxxxxxxxx.xxx.eks.amazonaws.com:30002时返回时间过长而无法响应。安全组在入站规则中有所有流量。

4

3 回答 3

2

您应该使用工作节点的 IP(如果您有多个节点,则使用其中一个节点),而不是 EKS 服务器端点。EKS 服务器端点是主平面,用于处理与创建/删除 pod 等有关的请求。

您还需要确保您的节点的安全组将允许流量。

有了这个,您应该能够向您的 NodePort 服务发出请求。例如:

http://your-workernodeIp:NodePortNumber

于 2020-01-21T22:52:42.540 回答
1

对于临时解决方案

您需要运行kubectl port-forward将其重定向到您的本地并使用https://localhost:30002访问

请记住:kubectl port-forward命令只绑定地址127.0.0.1,这意味着您不能从服务器外部访问转发端口。所以你必须在本地运行它

$ kubectl port-forward $(kubectl get pod -l "app=fakeserver" -o jsonpath={.items[0].metadata.name}) 30002

通过负载均衡器访问

如果您需要永久访问它,您需要将服务类型更改为LoadBalancer,然后通过其负载均衡器 url 访问此服务,或者您可以定义另一个 route53 DNS 以重定向到此负载均衡器。

于 2018-07-26T00:54:09.360 回答
0

您创建的服务属于类型 - Node-Port。您是否尝试过:30002

如果它也返回相同的错误,那么它是您的部署的问题。检查容器上暴露的端口和目标端口。应该是一样的。

于 2019-08-11T15:38:04.517 回答