有没有办法在Kong Ingress Controller中设置通配符证书,以便在每个Ingress中使用



有没有办法在Kong Ingress Controller中设置通配符证书,以便在每个Ingress中使用?

我从图表安装了孔:

$ helm repo add kong https://charts.konghq.com
$ helm repo update
$ helm install kong/kong --generate-name --set ingressController.enabled=true --set admin.enabled=True --set admin.http.enabled=True --set ingress.enabled=True --set proxy.ingress.enabled=True --set admin.type=LoadBalancer --set proxy.type=LoadBalancer

我想使用https

在Kong入口控制器中,有一个插件可以自动管理HTTPS证书并从let's encrypt中获取。

如何将证书管理器与Kong入口一起使用,它将为您完成此操作。

证书管理器将生成通配符证书并将其存储在K8s机密中,您可以使用ingress附加K8s机密(存储通配符证书(。

请确保您在证书管理器中拥有用于身份验证的DNS身份验证方法。

获取通配符证书的步骤:https://medium.com/@harsh.manvar111/wild-card-certificate-using-cert-manager-in-kubernetes-3406b042d5a2

在你的情况下,入口看起来像

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: kong  <---------- Ingress controller classs name
nginx.ingress.kubernetes.io/ssl-redirect: "false"
certmanager.k8s.io/issuer: "letsencrypt-prod"
certmanager.k8s.io/acme-challenge-type: dns01 <------ Use DNS-01 instead HTTP otherwise wildcard wont work
certmanager.k8s.io/acme-dns01-provider: route53 <------ DNS provider
name: ingress-resource-tls
namespace: default
spec:
rules:
- host: "hello.devops.example.in"
http:
paths:
- backend:
serviceName: hello-app
servicePort: 8080
path: /
pathType: ImplementationSpecific
tls:
- hosts:
- "hello.devops.example.in"
secretName: tls-secret

很长一段时间都有同样的问题。

Sol:使用通配符证书创建kubernetes TLS机密:

apiVersion: v1
kind: Secret
type: kubernetes.io/tls
metadata:
name: kong-proxy-tls
namespace: kong # or your kong installation namespace
data: 
tls.crt: "--YOUR wildcard certificate in Base64--"
tls.key: "--YOUR widlcard certificate key in Base64--"

现在更新kong helm chart(或使用--set(的值.yaml文件:

env:
ssl_cert: /etc/secrets/kong-proxy-tls/tls.crt
ssl_cert_key: /etc/secrets/kong-proxy-tls/tls.key
......
........
..........
secretVolumes:
- kong-proxy-tls

最新更新