开发者社区> 问答> 正文

使用Helm运算符自动为Kubernetes支持通配符子域

这是我的用例:我们有一个客户,他们的每个服务都必须在专用子域上提供。命名约定应该是service-name.customerdomain.com,service-name已部署的服务在哪里,并且customerdomain.com是客户域。创建新服务时,它应该是自动可用的,即一旦将service-name服务部署到集群中,就必须可以使用它service-name.customerdomain.com。

我知道,这可以通过以下步骤手动实现:

将Ingress控制器添加到群集

创建通配符DNS *.customerdomain.com并将其指向Ingress控制器

映射每个正在运行的服务的子域。对于集群中的每个现有服务,创建一个单独的部分到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 
- [...]

-host为每个新部署的服务添加Ingress资源文件新部分
删除-host每个已删除服务的Ingress资源文件部分
基本上 - 我想自动执行步骤4和5.我知道Ingress无法自行处理,但是,谷歌搜索,似乎ingress.yaml每次部署新服务/删除现有服务时更新文件都可以通过Helm实现及其值文件。

展开
收起
k8s小能手 2018-12-29 15:26:27 1813 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    您通常会通过将Ingress资源的模板作为基本应用程序图表的一部分来完成此操作。您可以拥有多个Ingress对象,并且它们都将在运行时获得多路复用,以便为您的控制器构建路由表。

    2019-07-17 23:24:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像