我正在将我的dockerized应用程序移植到kubernetes,并且在使用aks创建负载均衡器时遇到了问题:
The Service "lbalance" is invalid: spec.ports[0].nodePort: Invalid value: 80: provided port is not in the valid range.
The range of valid ports is 30000-32767
配置非常简单
apiVersion: v1
kind: Service
metadata:
name: lbalance
spec:
selector:
app: lbalance
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 80
name: http
- protocol: TCP
port: 443
targetPort: 443
nodePort: 443
name: https
type: LoadBalancer
在它后面的是一个具有ssl终止功能的haproxy,指向群集中公开的其他服务
在测试环境中,我有一个属性来控制要打开哪个端口(--service-node-port-range),但是在门户页面或Azure文档上都找不到该属性。
是否可以在默认端口上提供服务,或者建议使用哪种方法连接回该端点端口?
答案 0 :(得分:1)
您需要从yaml中删除nodePort
声明,它会由kubernetes从错误文本中提到的池中分配(您只能使用一个)。
apiVersion: v1
kind: Service
metadata:
name: lbalance
spec:
selector:
app: lbalance
ports:
- protocol: TCP
port: 80
targetPort: 80
name: http
- protocol: TCP
port: 443
targetPort: 443
name: https
type: LoadBalancer
这样,您的服务将在80 \ 443上可用,并且一切正常运行
答案 1 :(得分:1)
30000-32767是kubernetes中的默认nodeport范围。您已将其定义为nodePort:443。它不受支持,因此引发了错误。
按照以下步骤