【发布时间】:2019-07-19 04:06:56
【问题描述】:
是否有任何在 AKS 上使用 cert-manager 和 Nginx 入口的工作示例,其中多个域已通过 LetsEncrypt 授予 SSL,然后这些 dns 名称被定向到单独的容器?
我已经设置了一个 SSL 有一段时间了,但是在添加第二个之后,一切都停止了。
我需要将它应用到几个集群,所以我希望找到一个防弹示例。
【问题讨论】:
标签: azure kubernetes azure-aks cert-manager
是否有任何在 AKS 上使用 cert-manager 和 Nginx 入口的工作示例,其中多个域已通过 LetsEncrypt 授予 SSL,然后这些 dns 名称被定向到单独的容器?
我已经设置了一个 SSL 有一段时间了,但是在添加第二个之后,一切都停止了。
我需要将它应用到几个集群,所以我希望找到一个防弹示例。
【问题讨论】:
标签: azure kubernetes azure-aks cert-manager
我认为这无关紧要,我没有真正测试过,但是如果您添加 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 一个?
secretName。我认为它必须匹配一个应该在其他地方设置的名称,但显然它只是设置 tls-secret 资源的名称并将其分配给它所属的主机。