NodePort无法与AWS EKS服务器终端节点一起使用

时间:2018-07-25 19:49:45

标签: amazon-web-services kubernetes amazon-eks kubernetes-service

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 时,返回的时间太长而无法响应。安全组具有入站规则中的所有流量。

3 个答案:

答案 0 :(得分:1)

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

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

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

http://your-workernodeIp:NodePortNumber

答案 1 :(得分:0)

用于临时解决方案

您需要运行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来重定向到该负载均衡器。

答案 2 :(得分:0)

您创建的服务的类型为“节点端口”。您是否尝试过:30002

如果它还返回相同的错误,则说明您的部署存在问题。 检查容器上暴露的端口和目标端口。应该一样。