单个 NGINX-Ingress 控制器,用于在单独命名空间中具有资源的子域

Single NGINX-Ingress Controller for subdomains that have resources in separate namespaces

任何人都可以向我解释如何使用我当前的配置设置 SINGLE nginx 入口控制器,如下所示:

我看过这里

https://github.com/nginxinc/kubernetes-ingress/tree/v1.7.0/examples-of-custom-resources/cross-namespace-configuration

这似乎是在正确的轨道上,但它适用于路径“/cafe”。当我需要它时 "a.my-site.com".

我想这样做的主要原因是我不想为我们拥有的每个客户端(名称空间)都安装入口控制器。

所以我想通了, 默认的 HELM nginx-ingress 控制器安装在没有 SSL 证书的情况下工作正常。 NGINX 控制器实际上确实处理来自各种命名空间的入口资源。

我使用

安装了我的 *.domain.com 证书和密钥
kubectl create secret tls {SECRET_NAME} --key {KEY_FILE} --cert {CERT_FILE}

然后在nginx-ingress-controller deployment中我添加了:

-args:
 - --default-ssl-certificate=tenancy/whatevername-wildcard={NAMESPACE}/{SECRET_NAME}

入口位于命名空间中。例如:

命名空间 A:入口 -> Host: a.domain.com

命名空间 B:进入 host: b.domain.com

入口控制器注释中唯一列出的是 kubernetes.io/ingress.class: "nginx"

所有域都指向 nginx 负载均衡器 IP。

现在可以完美运行了。很简单,但是翻了文档也很不清楚。