nginx - K8s入口响应多个服务器名称而不配置它们?
问题描述
总的来说,我对 K8s 很陌生,而且我是一名开发人员,而不是网络专家,所以我想了解一些关于如何实现目标的想法,以便我可以对其进行一些研究。
假设我有我的应用程序(托管在 k8s 上),比如说 myapp.domain.com。假设我有一个新客户,他们想要自己的 URL……比如说 backoffice.company.com。为此,我必须进入我的 k8 入口并将“backoffice.company.com”添加到主机。现在让我们想象一下我有...... 30000 名客户这样做............好吧,你明白了。
我想到的一个想法是使用外部 nginx,例如,它侦听所有服务器名称并将它们代理到“myapp.domain.com”。但这迫使我有一个额外的服务器只是作为代理:/
有没有办法,可能通过 TXT 记录或类似的方式让入口验证请求是针对“myapp”的?
谢谢
解决方案
*.company.com
您可以使用负载均衡器直接向客户端公开服务,并添加指向负载均衡器的通配符 dns CNAME 记录。在这种情况下,您不需要 Nginx Ingress 来减少客户端的延迟并消除一个可能的瓶颈。
如果你仍然想要 Nginx Ingress,那么你可以使用这样的主机名通配符:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-wildcard-host
spec:
rules:
- host: "*.foo.com"
http:
paths:
- pathType: Prefix
path: "/foo"
backend:
service:
name: service2
port:
number: 80
推荐阅读
- css - 如何使用参数将多个变量重构为一个?
- python - remove unwanted tag using beautifulsoup
- python - 无法使用 pip 安装 ctcdecode
- node.js - 从服务器接收信息后运行应用程序
- java - 在 Android Studio 中更新 GridView 颜色而不刷新
- c# - 在 postgresql 的 jsonb[] 类型列中插入数据的正确语法是什么
- azure - Azure Devops - 历史代理池数据(过去 30 天)
- javascript - repl 进程意外死亡-Segmentation-fault core dumped
- c - 我需要帮助在字符串中搜索子字符串,同时避免包含子字符串的单词
- reactjs - Safari 为元素 Nextjs、React、Spring 添加了模糊轨迹