For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/containers-orchestration/managed-kubernetes/install-cert-manager.md.

Installer cert-manager sur OVHcloud Managed Kubernetes

Voir en Markdown

Découvrez comment installer cert-manager sur OVHcloud Managed Kubernetes

Objectif

Cert-manager est un add-on Kubernetes qui automatise la gestion et l'émission de certificats TLS à partir de diverses sources émettrices.

Cert Manager

Il vérifie périodiquement que les certificats sont valides et à jour, et tente de les renouveler au moment approprié avant leur expiration.

Architecture de Cert Manager

Ce tutoriel vous guide dans la mise en place de cert-manager sur votre OVHcloud Managed Kubernetes Service.

Prérequis

Ce tutoriel suppose que vous disposez déjà d'un cluster OVHcloud Managed Kubernetes fonctionnel, ainsi que de connaissances de base sur son utilisation. Pour en savoir plus sur ces sujets, consultez le guide de démarrage rapide OVHcloud Managed Kubernetes Service.

Vous devez également avoir Helm installé sur votre poste de travail et sur votre cluster ; reportez-vous au tutoriel Comment installer Helm sur OVHcloud Managed Kubernetes Service.

Installer le chart Helm cert-manager

Pour ce tutoriel, nous utilisons le chart Helm cert-manager disponible sur son propre repository Helm.

Le chart est entièrement configurable, mais nous utilisons ici la configuration par défaut.

Ajoutez le repository Helm de cert-manager :

helm repo add jetstack https://charts.jetstack.io
helm repo update

Ces commandes ajoutent le repository Helm Kyverno à votre repository Helm local et mettent à jour les repositories de charts installés :

$ helm repo add jetstack https://charts.jetstack.io
helm repo update
"jetstack" already exists with the same configuration, skipping
Hang tight while we grab the latest from your chart repositories...
...
...Successfully got an update from the "jetstack" chart repository
...
Update Complete. ⎈Happy Helming!⎈

Créez un fichier values.yaml avec le contenu suivant :

config:
  featureGates:
    # Désactive l'utilisation du PathType Exact dans les ressources Ingress, pour contourner un bug d'ingress-nginx
    # https://github.com/kubernetes/ingress-nginx/issues/11176
    ACMEHTTP01IngressPathTypeExact: false

Installez la dernière version de cert-manager avec la commande helm install :

helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --set crds.enabled=true \
  --values values.yaml
Info

Le fichier values.yaml est nécessaire pour « corriger » les changements bloquants d'ingress-nginx 1.18+.

Cette commande installe la dernière version de cert-manager, crée un nouveau namespace cert-manager et installe les nouvelles CRD (CustomResourceDefinitions) :

$ helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
 --set crds.enabled=true
NAME: cert-manager
LAST DEPLOYED: Thu Jan 18 15:28:23 2024
NAMESPACE: cert-manager
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
cert-manager v1.13.3 has been deployed successfully!

In order to begin issuing certificates, you will need to set up a ClusterIssuer
or Issuer resource (for example, by creating a 'letsencrypt-staging' issuer).

More information on the different types of issuers and how to configure them
can be found in our documentation:

https://cert-manager.io/docs/configuration/

For information on how to configure cert-manager to automatically provision
Certificates for Ingress resources, take a look at the `ingress-shim`
documentation:

https://cert-manager.io/docs/usage/ingress/

Vérifiez que cert-manager a été déployé correctement avec la commande kubectl get pods --namespace cert-manager :

$ kubectl get pods --namespace cert-manager
NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-75cf8df6b6-x2q6l              1/1     Running   0          2m34s
cert-manager-cainjector-857f5bd88c-gggxw   1/1     Running   0          2m34s
cert-manager-webhook-5cd99556d6-jq5vk      1/1     Running   0          2m34s

Maintenant que cert-manager est déployé, vous devez configurer un cluster-issuer pour effectuer les challenges ACME Let's Encrypt.

Info

Pour éviter d'être bloqué par les robots de Let's Encrypt, à des fins de test, il est recommandé d'utiliser l'environnement staging avant de passer en production.

Créez un Issuer dans un fichier nommé issuer.yaml avec le contenu suivant :

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    # The ACME server URL
    server: https://acme-v02.api.letsencrypt.org/directory
    # Email address used for ACME registration
    email: [YOUR_EMAIL]
    # Name of a secret used to store the ACME account private key
    privateKeySecretRef:
      name: letsencrypt-prod
    # Enable the HTTP-01 challenge provider
    solvers:
    - http01:
        ingress:
          class: nginx
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging
spec:
  acme:
    # The ACME server URL
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    # Email address used for ACME registration
    email: [YOUR_EMAIL]
    # Name of a secret used to store the ACME account private key
    privateKeySecretRef:
      name: letsencrypt-staging
    # Enable the HTTP-01 challenge provider
    solvers:
    - http01:
        ingress:
          class: nginx
Info

N'oubliez pas de remplacer [YOUR_EMAIL] par une valeur réelle : elle sera utilisée pour les challenges ACME.

Appliquez le manifeste YAML :

kubectl apply -f issuer.yaml

Désormais, toute ressource ingress pourra être annotée avec :

"cert-manager.io/cluster-issuer": "letsencrypt-prod"
# Or for tests
"cert-manager.io/cluster-issuer": "letsencrypt-staging"

Pour la configuration des ingresses, reportez-vous à notre tutoriel Comment sécuriser un Nginx Ingress avec cert-manager sur OVHcloud Managed Kubernetes.

Aller plus loin

  • Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.

  • Échangez avec notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?