【问题标题】:Using cert-manager on AKS with LetsEncrypt and multiple certs在 AKS 上使用带有 LetsEncrypt 和多个证书的证书管理器
【发布时间】:2019-07-19 04:06:56
【问题描述】:

是否有任何在 AKS 上使用 cert-manager 和 Nginx 入口的工作示例,其中多个域已通过 LetsEncrypt 授予 SSL,然后这些 dns 名称被定向到单独的容器?

我已经设置了一个 SSL 有一段时间了,但是在添加第二个之后,一切都停止了。

我需要将它应用到几个集群,所以我希望找到一个防弹示例。

【问题讨论】:

    标签: azure kubernetes azure-aks cert-manager


    【解决方案1】:

    我认为这无关紧要,我没有真正测试过,但是如果您添加 2 个具有不同域\秘密的单独入口资源,它应该可以工作(至少我看不出有任何不应该的原因):

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: tls-example-ingress
      annotations:
        ingress.kubernetes.io/ssl-redirect: "true"
        kubernetes.io/tls-acme: "true"
        certmanager.k8s.io/issuer: letsencrypt-production
        kubernetes.io/ingress.class: "nginx
    spec:
      tls:
      - hosts:
        - sslexample.foo.com
        secretName: testsecret-tls
      rules:
        - host: sslexample.foo.com
          http:
            paths:
            - path: /
              backend:
                serviceName: service1
                servicePort: 80
    
    ---
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: tls-example-ingress
      annotations:
        ingress.kubernetes.io/ssl-redirect: "true"
        kubernetes.io/tls-acme: "true"
        certmanager.k8s.io/issuer: letsencrypt-production
        kubernetes.io/ingress.class: "nginx
    spec:
      tls:
      - hosts:
        - sslexample1.foo.com
        secretName: testsecret-tls1
      rules:
        - host: sslexample1.foo.com
          http:
            paths:
            - path: /
              backend:
                serviceName: service2
                servicePort: 80
    

    tls 是一个数组,所以应该多于一项。不过,不确定与证书管理器的交互

    tls:
    - hosts:
      - sslexample.foo.com
      secretName: testsecret-tls
    - hosts:
      - sslexample1.foo.com
      secretName: testsecret1-tls
    

    【讨论】:

    • 啊!我想我是想把它们归为一个秘密。我回来时会试试的。谢谢!
    • 是的,我想他们会互相覆盖
    • 有趣的是,这不适用于 Ingress 类型。这需要一个secretName,但有很多主机名......您需要多种入口类型,每个 SSL 一个?
    • 这正是我想要的——谢谢@4c74356b41!
    • 拯救了我的一天。感谢您提供此解决方案。让我感到困惑的是参数secretName。我认为它必须匹配一个应该在其他地方设置的名称,但显然它只是设置 tls-secret 资源的名称并将其分配给它所属的主机。
    猜你喜欢
    • 2016-09-03
    • 2020-11-09
    • 2020-01-15
    • 2017-02-21
    • 2022-01-04
    • 2017-03-18
    • 1970-01-01
    • 2013-05-16
    • 2021-01-26
    相关资源
    最近更新 更多