我可以通过端口80和443使用EKS NodePort服务吗?

时间:2019-04-24 03:11:45

标签: kubernetes amazon-eks eks

我正在使用EKSK8s本身提供的AWS服务)。

我的问题是:

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

注意:我知道使用NodePort服务的后果,并且已经研究了LoadBalancerIngress之类的替代方法。我必须使用NodePort,因为我必须这样做。

2 个答案:

答案 0 :(得分:2)

  1. 否。根据{{​​3}},工作节点的kubelet使用--service-node-port-range的默认配置。您将在30000-32767之间被分配一个外部端口号。

  2. 您可以选择使用节点的 hostNetwork 将端口80和443公开为 hostPort 。可以在EKS AMI Source中找到设置的描述。只需记住使用hostNetwork的网络限制和注意事项!

希望这会有所帮助!

答案 1 :(得分:1)

尝试为服务使用外部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上打开。这是一个肮脏的解决方法,但应该可以。