如何修复:digital-ocean 上 nginx-ingress 的 IP 地址为空

Pet*_*ang 5 digital-ocean kubernetes

在我的 k8s 集群中,入口在 digital ocean 的 k8s 集群上不起作用。我没有获得外部IP,所以它不可用。本地好像没有问题。

我已经搜索了很多并尝试了一些教程,例如https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes。但它似乎是一个旧版本,解决方案(甚至链接)不再起作用。

nginx-ingress 应该调用端口 8080 上的网站后端服务。

我将入口代码精简为以下代码:

kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: website
          servicePort: 8080
Run Code Online (Sandbox Code Playgroud)

我看到kubectl get ing了入口,但没有地址。看起来像这样

NAME           HOSTS   ADDRESS   PORTS   AGE
test-ingress   *                 80      50s
Run Code Online (Sandbox Code Playgroud)

谁能帮助我并告诉我需要做什么才能让我的 k8s 集群运行起来?

谢谢彼得

coo*_*oid 8

首先,如果您使用 Nginx Ingress Controller,则不需要查看入口地址。

当您将Nginx Ingress Controller安装到 k8s 集群时,它会创建负载均衡器来处理所有传入请求。确保按照您发布的指南步骤 2中的说明完成以下部分,并且您能够看到 LoadBalancer 外部 IP 地址。

$ kubectl get svc --namespace=ingress-nginx
Run Code Online (Sandbox Code Playgroud)

您应该看到一个外部 IP 地址,对应于 DigitalOcean 负载均衡器的 IP 地址:

Output
NAME            TYPE           CLUSTER-IP      EXTERNAL-IP       PORT(S)                      AGE
ingress-nginx   LoadBalancer   10.245.247.67   203.0.113.0   80:32486/TCP,443:32096/TCP   20h
Run Code Online (Sandbox Code Playgroud)

在上述情况下,部署入口资源后,如果您点击,http://203.0.113.0您将获得website:8080后端服务。

希望能帮助到你!