我可以使用端口 80 和 443 的 EKS NodePort 服务吗
Can I use EKS NodePort service with port 80 and 443
我正在使用 EKS
(K8s
由 AWS
本机提供的服务)。
我的问题是:
- 是否可以通过端口 80 和 443 公开
NodePort
服务(默认 NodePort
范围是 30000 - 32767
)。
- 如果是,如何使用
EKS
。
注意 我知道使用 NodePort
服务的后果,并且研究了 LoadBalancer
和 Ingress
等替代方案。我将继续使用 NodePort,因为我必须这样做。
没有。根据 EKS AMI Source,工作节点的 kubelet 使用 --service-node-port-range
的默认配置。您将被分配一个介于 30000-32767
.
之间的外部端口号
您可以选择使用节点的 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 上打开。这是一个肮脏的解决方法,但它应该有效。
我正在使用 EKS
(K8s
由 AWS
本机提供的服务)。
我的问题是:
- 是否可以通过端口 80 和 443 公开
NodePort
服务(默认NodePort
范围是30000 - 32767
)。 - 如果是,如何使用
EKS
。
注意 我知道使用 NodePort
服务的后果,并且研究了 LoadBalancer
和 Ingress
等替代方案。我将继续使用 NodePort,因为我必须这样做。
没有。根据 EKS AMI Source,工作节点的 kubelet 使用
之间的外部端口号--service-node-port-range
的默认配置。您将被分配一个介于30000-32767
.您可以选择使用节点的 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 上打开。这是一个肮脏的解决方法,但它应该有效。