kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.6.1/cert-manager.yaml
ClusterIssuer
à créer pour configurer Let’s Encrypt :apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
# name: letsencrypt-staging
name: letsencrypt-prod
spec:
acme:
email: cto@doxx.fr
privateKeySecretRef:
name: prod-issuer-account-key
# name: staging-issuer-account-key
server: https://acme-v02.api.letsencrypt.org/directory
# server: https://acme-staging-v02.api.letsencrypt.org/directory
http01: {}
solvers:
- http01:
ingress:
class: traefik
selector: {}
Ingress
plus bas et l’avant-dernière ligne de l’objet ClusterIssuer
) :helm repo add traefik https://helm.traefik.io/traefik
helm repo update
helm install traefik traefik/traefik
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: monster-ingress
annotations:
traefik.ingress.kubernetes.io/router.tls: "true"
kubernetes.io/ingress.class: traefik
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
tls:
- hosts:
- monster.hadrien.lab.doxx.fr
secretName: monster-hadrien-lab-doxx-fr
rules:
- host: monster.hadrien.lab.doxx.fr
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: monstericon
port:
number: 5000
NB : si vous n’arrivez pas à obtenir de certificat HTTPS, modifiez l’objet ClusterIssuer
pour obtenir un certificat depuis les serveurs staging de Let’s Encrypt : Let’s Encrypt limite très fortement le nombre de certificats installables sur les mêmes domaines et sous-domaines.