我可以使用端口 80 和 443 的 EKS NodePort 服务吗

Can I use EKS NodePort service with port 80 and 443

我正在使用 EKSK8sAWS 本机提供的服务)。

我的问题是:

  1. 是否可以通过端口 80 和 443 公开 NodePort 服务(默认 NodePort 范围是 30000 - 32767)。
  2. 如果是,如何使用 EKS

注意 我知道使用 NodePort 服务的后果,并且研究了 LoadBalancerIngress 等替代方案。我将继续使用 NodePort,因为我必须这样做。

  1. 没有。根据 EKS AMI Source,工作节点的 kubelet 使用 --service-node-port-range 的默认配置。您将被分配一个介于 30000-32767.

    之间的外部端口号
  2. 您可以选择使用节点的 hostNetwork 将端口 80 和 443 公开为 hostPort。可以找到设置的描述 here。请记住使用主机网络的网络限制和注意事项!

尝试为您的服务使用外部 IP:

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 上打开。这是一个肮脏的解决方法,但它应该有效。