当前位置: 首页 > 知识库问答 >
问题:

Kubernetes的动态通配符子域入口

张晨朗
2023-03-14
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
spec:
  rules:
  - host: api.mydomain.com
    http:
      paths:
        - backend:
            serviceName: api-service
            servicePort: 80
  - host: console.mydomain.com
    http:
      paths:
        - backend:
            serviceName: console-service
            servicePort: 80

以下是每个部署的潜在工作流:

  1. 创建feature-api-deployment.yml
  2. 创建feature-api-service.yml
  3. 使用新的子域规则更新ingress.yml:feature.api.mydomain.com指定serviceName:feature-api-service

但是枚举和维护所有的子域->服务映射将会因为分解部署而变得混乱,并且会创建大量的GCE后端(默认配额是5...)所以不太理想。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
spec:
  rules:
  - host: *.api.mydomain.com
    http:
      paths:
        - backend:
            serviceName: {value of *}-api-service
            servicePort: 80

共有1个答案

陆博易
2023-03-14

当然,在kubernetes中没有类似通配符域的东西,但是您可能可以使用Helm来获得想要的

使用helm,您可以在清单中对变量进行模板化,因此您可以在helm values文件中包含分支的名称

从那里,您可以让gitlab-ci在构建管道中执行helm安装,如果您正确配置了图表,您可以指定管道名称的helm参数。

 类似资料:
  • 我正在开发一个将在Kubernetes运行的SaaS应用程序。我们使用了一个将所有组件部署到集群中的Helm图表(为了简单起见,我们假设它是一个前端服务、一个后端和一个数据库)。应用程序架构是多租户的(我们有每个服务的一个实例,由所有租户共享),我们希望保持这种方式。我目前正在苦苦思索并想征求建议/最佳实践的是,如何为租户自动提供自定义子域? null

  • 我正在尝试设置K8s部署,ingress的控制器可以将服务定义为子域。i、 e.

  • 我安装了通配符 SSL 证书,允许我通过 SSL 为任何子域提供页面。 例如:https://www.domain.comhttps://test.domain.comhttps://demo.domain.com 我需要编写一些. htaccess规则来执行以下操作。 > 如果单独请求域,则强制使用WWW和SSL 例如,将 http://domain.com 或 https://domain.c

  • 通常,我希望启用来自起源匹配的请求(并且仅限于):

  • 我对 Kubernetes 很陌生。但到目前为止,能够配置AKS(Azure Kubernetes Services)群集。我的服务有多个命名空间(开发、阶段、生产)。并使用nginx配置了一个入口服务(进入它自己的命名空间“ingress-nginx”)。该设置与HTTP完美配合。 当我试图使用HTTPS时,我的问题就开始了。使用此脚本首次安装证书管理器。它再次创建了自己的名称空间:“cert-