在端口 80 上访问 nginx ingress controller

Accessing nginx ingress controller on port 80

我可以在 NodePort 上访问 nginx ingress controller。我的目标是访问 port 80.

上的控制器

Output of 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>

我对解决这个问题没有什么想法:

我不确定这些是否是执行此操作的常用方法,所以我很想听听您通常如何处理此问题。可能还需要另一个组件?

处理此问题的正常方法是使用 LoadBalancer 模式服务,它将云负载平衡器放在现有 NodePort 前面,以便您可以将正常端口重新映射回它。

您应该将 nginx 服务的类型从 NodePort 更改为 LoadBalancer。 示例清单如下所示:

spec:
  ports:
  - name: nginx
    port: 80
    protocol: TCP
    targetPort: 8000 // Your nginx port
  type: LoadBalancer