nginx - 单个 NGINX 入口控制器,用于在不同命名空间中具有资源的子域
问题描述
谁能向我解释如何使用我目前拥有的配置设置一个单一的nginx 入口控制器,如下所示:
- A.MY-SITE.COM = Service、Ingress、Pods..etc 位于“A”命名空间下
- B.MY-SITE.COM = Service、Ingress、Pods..etc 位于“B”命名空间下
我在这里见过
这似乎在正确的轨道上,但它适用于路径“/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 部署中我添加了:
-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。
现在它完美地工作了。非常简单,但是通过文档搜索也很不清楚。
推荐阅读
- java - 如何使用 Mockito/PowerMockito 触发 IOException 进行单元/集成测试
- privacy - 什么是“设计隐私”?以及如何实现?
- java - 将字符串转换为日期对象并返回
- c++ - 如何将 int32t_t 转换为 int16_t(msb) 和 uint16_t(Lsb)?在不改变原始值的情况下
- java - 为什么Java扩展基类需要main(string[])方法
- python - 数据集将第一列作为数据而不是标题读取
- c++ - 如何使用指针将数组结构发送到函数中
- react-native - 尽管输入了数据,但仍会触发 Formik 验证错误
- api - 如何将带有动态表格的网页抓取到 Google 表格中
- c++ - Openssl C/C++ 以编程方式从模数和指数中获取 RSA 公钥