【问题标题】:How to fix: Empty IP Address for nginx-ingress on digital-ocean如何修复:数字海洋上 nginx-ingress 的空 IP 地址
【发布时间】:2019-10-12 08:18:17
【问题描述】:

在我的 k8s 集群中,入口不适用于数字海洋的 k8s 集群。我没有外部IP,所以它不可用。本地似乎没有问题。

我已经搜索了很多并尝试了一些教程,f.e. 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

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

NAME           HOSTS   ADDRESS   PORTS   AGE
test-ingress   *                 80      50s

谁能帮助我并告诉我我必须做什么才能让我的 k8s 集群运行?

谢谢 彼得

【问题讨论】:

    标签: kubernetes digital-ocean


    【解决方案1】:

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

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

    $ kubectl get svc --namespace=ingress-nginx
    

    您应该会看到一个外部 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
    

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

    希望对你有帮助!

    【讨论】:

    • 谢谢。我不知道我必须自己设置 nginx-ingress 服务和控制器。在我这样做之后,它起作用了。并非一切正常,但此问题已得到解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 2019-04-13
    • 2014-03-07
    相关资源
    最近更新 更多