我正在 GKE 上设置 k8s 集群。通配符 DNS *.server.com
将指向一个入口 Controller 。在集群内部,会有 webserver pods,每个都暴露一个独特的服务。 Ingress Controller 将使用服务器名称路由到各种服务。
服务器几乎每天都会被创建和销毁。我想知道是否有一种方法可以在不编辑整个命名服务器列表的情况下从入口 Controller 添加和删除命名服务器。
最佳答案
看起来您计划在单个负载均衡器(==单个 Ingress
资源)上托管多个域名。如果不是,则此答案不适用。
您可以通过配置 Ingress
来做到这一点。有一长串域名,例如:
spec:
rules:
- host: cats.server.com
http:
paths:
- path: /*
backend:
serviceName: cats
servicePort: 8080
- host: dogs.server.com
http:
paths:
- path: /*
backend:
serviceName: dogs
servicePort: 8080
- [...]
如果这是您的意图,如果不编辑整个列表,就无法做到这一点 并每次都将其应用于集群。
您可以构建一个工具来构建此 list 文件,然后应用更改。 Ingress Controller 足够智能,如果现有域仍在列表中,它们将不会看到停机时间。
但是,您从列表中删除的域也将从负载均衡器的 URL 映射中删除,从而停止接受流量。
关于kubernetes - 从 k8s 入口动态添加/删除命名主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50261504/