我正在使用EKS
(K8s
本身提供的AWS
服务)。
我的问题是:
NodePort
服务(默认NodePort
范围是30000 - 32767
)。EKS
来做到这一点。 注意:我知道使用NodePort
服务的后果,并且已经研究了LoadBalancer
和Ingress
之类的替代方法。我必须使用NodePort,因为我必须这样做。
答案 0 :(得分:2)
否。根据{{3}},工作节点的kubelet使用--service-node-port-range
的默认配置。您将在30000-32767
之间被分配一个外部端口号。
您可以选择使用节点的 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上打开。这是一个肮脏的解决方法,但应该可以。