任何人都可以向我解释如何使用我当前的配置设置SINGLE nginx ingress controller,如下所示:
- A.MY-SITE.COM = Service、Ingress、Pod..等位于“A”命名空间下
- B.MY-SITE.COM = Service、Ingress、Pod..等位于“B”命名空间下
我在这里看过
这似乎是在正确的轨道上,但它适用于路径“/cafe”。当我需要它是“a.my-site.com”时。
我想这样做的主要原因是我不想为我们拥有的每个客户端(命名空间)都安装一个入口 Controller 。
最佳答案
所以我想通了, 默认的 HELM nginx-ingress Controller 安装在没有 SSL 证书的情况下工作正常。 NGINX Controller 实际上确实处理来自各种命名空间的入口资源。
我使用 *.domain.com
证书和 key 安装了
kubectl create secret tls {SECRET_NAME} --key {KEY_FILE} --cert {CERT_FILE}
然后在 nginx-ingress-controller 部署中我添加了:
-args:
- --default-ssl-certificate=tenancy/whatevername-wildcard={NAMESPACE}/{SECRET_NAME}
入口位于命名空间中。例如:
命名空间 A:入口 -> 主机:a.domain.com
命名空间 B:Ingress with host: b.domain.com
入口 Controller 注释中唯一列出的是
kubernetes.io/ingress.class: "nginx"
所有域都指向 nginx 负载均衡器 IP。
现在它完美运行了。很简单,但是通过文档搜索也很不清楚。
关于nginx - 单个 NGINX-Ingress Controller ,用于在单独命名空间中具有资源的子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61791330/