Kubernetes 我可以在端口80和443上使用EKS节点端口服务吗

Kubernetes 我可以在端口80和443上使用EKS节点端口服务吗,kubernetes,amazon-eks,Kubernetes,Amazon Eks,我正在使用AWS提供的EKS K8s服务 我的问题是: 是否可以通过端口80和443公开NodePort服务默认NodePort范围为30000-32767。 如果是,如何使用EKS实现。 注意:我知道使用NodePort服务的后果,并研究了负载均衡器和入口等替代方案。我将继续进行NodePort,因为我必须这样做 否。根据,工作节点的Kubelet使用-服务节点端口范围的默认配置。将为您分配一个介于30000-32767之间的外部端口号 您可以选择使用节点的主机网络将端口80和443公开为主机

我正在使用AWS提供的EKS K8s服务

我的问题是:

是否可以通过端口80和443公开NodePort服务默认NodePort范围为30000-32767。 如果是,如何使用EKS实现。 注意:我知道使用NodePort服务的后果,并研究了负载均衡器和入口等替代方案。我将继续进行NodePort,因为我必须这样做

否。根据,工作节点的Kubelet使用-服务节点端口范围的默认配置。将为您分配一个介于30000-32767之间的外部端口号

您可以选择使用节点的主机网络将端口80和443公开为主机端口。可以找到设置的说明。请记住使用主机网络的网络限制和注意事项


希望这有帮助

尝试将externalIPs用于您的服务:

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
  externalIPs:
  - node1_IP
  - node2_IP
  - node3_IP

在这种情况下,端口80也将在节点IP上打开。这是一个肮脏的解决办法,但它应该会起作用。

我最近也发现了关于主机端口和主机网络的问题。感谢您确认这是我需要的。嗨,弗兰克,-服务节点端口范围是kube apiserver中的配置,对吗?你是说我们可以在kubelet级别覆盖它吗?据我所知,当你声明一个节点端口时,你会在Kubernetes系统给定的范围内被分配一个端口号。此范围是在Kubelet级别指定的,而不是api服务器,因为每个Kubelet可能位于具有不同ACL和安全组的网络中。