【发布时间】:2018-12-28 00:59:31
【问题描述】:
这是我的用例:
我们有一个客户,他们的每项服务都必须在专用子域上可用。命名约定应为service-name.customerdomain.com,其中service-name 是部署的服务,customerdomain.com 是客户域。创建新服务时,它应该自动可用,即一旦service-name 服务部署到集群中,它必须在service-name.customerdomain.com 上可用。
我知道,这可以通过以下步骤手动实现:
将 Ingress 控制器添加到集群
创建通配符 DNS
*.customerdomain.com并将其指向 入口控制器- 为每个正在运行的服务映射子域。对于集群中的每个现有服务,在 Ingress 资源文件
ingress.yaml中创建一个单独的部分,例如
Spec: rules: - host: helloworld.awesome-customer.com http: paths: - path: /* backend: serviceName: helloworld servicePort: 8080 - host: nextfineapp.awesome-customer.com http: paths: - path: /* backend: serviceName: nextfineapp servicePort: 8080 - [...]
- 为每个新添加 Ingress 资源文件新的
-host部分 部署服务 - 删除 Ingress 资源文件
-host部分,每个已删除 服务
基本上 - 我想自动化第 4 步和第 5 步。我知道 Ingress 无法自行处理此问题,但是,通过谷歌搜索,似乎每次部署新服务/现有服务时更新 ingress.yaml 文件是删除可以通过Helm 及其值文件实现。
如果可以在下面指出/描述示例解决方案,我将不胜感激。
【问题讨论】:
标签: kubernetes kubernetes-helm kubernetes-ingress