我能够访问nginx ingress controller
上的NodePort
。我的目标是访问port 80
上的控制器。
kubectl -n ingress-nginx describe service/ingress-nginx
的输出
Name: ingress-nginx
Namespace: ingress-nginx
Labels: app.kubernetes.io/name=ingress-nginx
app.kubernetes.io/part-of=ingress-nginx
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"ingress-nginx","app.kubernetes.io/par...
Selector: app.kubernetes.io/name=ingress-nginx,app.kubernetes.io/part-of=ingress-nginx
Type: NodePort
IP: 10.100.48.223
Port: http 80/TCP
TargetPort: 80/TCP
NodePort: http 30734/TCP
Endpoints: 192.168.0.8:80
Port: https 443/TCP
TargetPort: 443/TCP
NodePort: https 32609/TCP
Endpoints: 192.168.0.8:443
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
我几乎没有解决这个问题的想法:
iptables
重定向到端口80 我不确定这些方法是否通用,所以我很想听听您通常如何处理此问题。可能还需要其他组件吗?
答案 0 :(得分:2)
处理此问题的常规方法是使用LoadBalancer模式服务,该服务将云负载平衡器置于现有NodePort的前面,以便您可以将常规端口重新映射到其上。
答案 1 :(得分:1)
您应将nginx服务的类型从NodePort
更改为LoadBalancer
。
清单清单示例如下:
spec:
ports:
- name: nginx
port: 80
protocol: TCP
targetPort: 8000 // Your nginx port
type: LoadBalancer