首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >支持TLS的通配符域: GKE上的Kubernetes入侵

支持TLS的通配符域: GKE上的Kubernetes入侵
EN

Stack Overflow用户
提问于 2020-05-22 01:43:46
回答 1查看 10.2K关注 0票数 5

我正在开发一个动态部署kubernetes资源的应用程序,我希望能够为所有这些应用程序提供一个共享SSL证书。在任何给定的时间,所有服务都有路径*.*.*.example.com

我听说证书经理会自动提供/重新提供证书,但如果管理费用太高,我不一定需要自动配置。解决方案还需要能够处理这些嵌套的url子域。

有什么最简单的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-22 05:14:17

请看一下尼吉斯,它是一个Kubernetes入侵控制器,本质上可以在Kubernetes上运行Nginx反向代理/web服务器/负载平衡器。

nginx-ingress是围绕入口资源构建的。它将在配置映射中监视Ingress对象并管理nginx配置。您可以通过Kubernetes入侵资源规则和nginx特定注释定义强大的流量路由规则、缓存、url重写等等。

下面是一个带有某些路由的“进题”的例子。你可以用这个做更多的事,它确实支持通配符域路由。

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    cert-manager.io/cluster-issuer: letsencrypt-prod
  name: my-ingress
spec:
  rules:
  - host: app1.domain.com
    http:
      paths:
      - backend:
          serviceName: app1-service
          servicePort: http
        path: /(.*)

  - host: app2.sub.domain.com
    http:
      paths:
      - backend:
          serviceName: app2-service
          servicePort: http
        path: /(.*)
  tls:
  - hosts:
    - app1.domain.com
    secretName: app1.domain.com-tls-secret
  - hosts:
    - app2.sub.domain.com
    secretName: app2.sub.domain.com-tls-secret

注释部分非常重要。上面指出,nginx-ingress应该管理这个入侵定义。这个注释部分允许指定额外的nginx配置,在上面的示例中,它指定了一个url重写目标,可用于重写规则部分中的url。

有关在GKE上安装nginx入口文件,请参见这个社区邮政

您将注意到注释还有一个特定于证书管理器的注释,如果安装了该注释,将指示cert管理器根据tls部分中定义的主机和机密颁发证书。

结合使用证书经理和nginx-ingress,这并不复杂,您可以设置自动证书创建/更新。

很难知道部署动态应用程序的设置的确切性质。但是,实现配置的一些可能方法是:

  • 让每个应用程序用自己的路由规则和TLS配置来定义自己的侵入,每次部署应用程序时都会安装/更新TLS配置
  • 每个域/子域都有一个入口处。然后,可以为该子域指定一个具有路由规则的通配符子域和tls部分。
  • 或者,您可能有一个uber Ingress,它处理所有域和路由。

粒度越细,控制越多,但移动部件越多。我不认为这是个问题。对于最后两个选项,它实际上取决于动态应用程序部署的性质。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61946559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档