Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

Installer/Mise à niveau SUSE Rancher Prime sur un cluster Kubernetes

Dans cette section, vous apprendrez à déployer Rancher sur un cluster Kubernetes en utilisant le CLI Helm.

Conditions préalables

Kubernetes Cluster

Configurez le cluster Kubernetes local du serveur Rancher.

Rancher peut être installé sur n’importe quel cluster Kubernetes. Ce cluster peut utiliser Kubernetes en amont, ou il peut utiliser l’une des distributions Kubernetes de Rancher, ou il peut s’agir d’un cluster Kubernetes géré par un fournisseur tel qu’Amazon EKS.

Pour obtenir de l’aide sur la configuration d’un cluster Kubernetes, nous fournissons ces tutoriels :

  • K3s: Pour le tutoriel d’installation d’un cluster Kubernetes K3s, référez-vous à cette page. Pour obtenir de l’aide sur la configuration de l’infrastructure pour un cluster K3s à haute disponibilité, référez-vous à cette page.

  • RKE2: Pour le tutoriel d’installation d’un cluster Kubernetes RKE2, référez-vous à cette page. Pour obtenir de l’aide sur la configuration de l’infrastructure pour un cluster RKE2 à haute disponibilité, référez-vous à cette page.

  • Amazon EKS : Pour des détails sur la façon d’installer Rancher sur Amazon EKS, y compris comment installer un contrôleur Ingress afin que le serveur Rancher puisse être accessible, référez-vous à cette page.

  • AKS : Pour des détails sur l’installation de Rancher avec Azure Kubernetes Service, y compris comment installer un contrôleur Ingress afin que le serveur Rancher puisse être accessible, consultez cette page.

  • GKE: Pour des détails sur l’installation de Rancher avec Google Kubernetes Engine, y compris comment installer un contrôleur Ingress afin que le serveur Rancher puisse être accessible, consultez cette page. GKE a deux modes de fonctionnement lors de la création d’un cluster Kubernetes, le mode Autopilot et le mode Standard. La configuration du cluster pour le mode Autopilot a des restrictions sur l’édition de l’espace de noms kube-system. Cependant, Rancher doit créer des ressources dans l’espace de noms kube-system lors de l’installation. En conséquence, vous ne pourrez pas installer Rancher sur un cluster GKE créé en mode Autopilot.

Contrôleur d’Ingress

L’interface utilisateur et l’API de Rancher sont exposées via un Ingress. Cela signifie que le cluster Kubernetes dans lequel vous installez Rancher doit contenir un contrôleur Ingress.

Pour les installations RKE2 et K3s, vous n’avez pas besoin d’installer le contrôleur Ingress manuellement car un est installé par défaut.

Pour les distributions qui n’incluent pas de contrôleur Ingress par défaut, comme un cluster Kubernetes hébergé tel que EKS, GKE ou AKS, vous devez d’abord déployer un contrôleur Ingress. Notez que le chart Helm de Rancher ne définit pas de ingressClassName sur l’ingress par défaut. En raison de cela, vous devez configurer le contrôleur Ingress pour surveiller également les ingresses sans ingressClassName.

Des exemples sont inclus dans les tutoriels Amazon EKS, AKS et GKE ci-dessus.

Outils en ligne de commande (CLI)

Les outils CLI suivants sont nécessaires pour configurer le cluster Kubernetes. Veuillez vous assurer que ces outils sont installés et disponibles dans votre $PATH.

Installez le Rancher Helm Chart.

Rancher est installé en utilisant le gestionnaire de paquets Helm pour Kubernetes. Les charts Helm fournissent une syntaxe de templating pour les documents manifestes YAML de Kubernetes. Avec Helm, nous pouvons créer des déploiements configurables au lieu d’utiliser simplement des fichiers statiques.

Pour les systèmes sans accès direct à Internet, voir Isolation physique : Kubernetes install.

Pour choisir une version de Rancher à installer, reportez-vous à xref:[Choisir une version de Rancher.]

Pour choisir une version de Helm pour installer Rancher, reportez-vous aux exigences de version de Helm

Les instructions d’installation supposent que vous utilisez Helm 3.

Pour configurer Rancher,

1. Ajoutez le dépôt de chart Helm

Utilisez la commande helm repo add pour ajouter le dépôt de chart Helm qui contient des charts pour installer Rancher Prime.

helm repo add rancher-prime <helm-chart-repo-url>

To learn more about the Rancher Prime Helm chart repository URL, see our Prime-only documentation. Authentication is required. Use your SUSE Customer Center (SCC) credentials to log in.

2. Créer un espace de noms pour Rancher

Nous devrons définir un espace de noms Kubernetes où les ressources créées par le Chart doivent être installées. Cela devrait toujours être cattle-system :

kubectl create namespace cattle-system

3. Choisissez votre configuration SSL

Le serveur de gestion Rancher est conçu pour être sécurisé par défaut et nécessite une configuration SSL/TLS.

Si vous souhaitez terminer SSL/TLS à l’extérieur, consultez Terminaison TLS sur un équilibreur de charge externe. Comme indiqué sur cette page, cette option a des exigences supplémentaires pour la vérification TLS.

Il y a trois options recommandées pour la source du certificat utilisé pour la terminaison TLS sur le serveur Rancher :

  • Certificat TLS généré par Rancher : Dans ce cas, vous devrez installer cert-manager dans le cluster. Rancher utilise cert-manager pour émettre et maintenir ses certificats. Rancher générera un certificat CA propre et signera un certificat en utilisant ce CA. cert-manager est ensuite responsable de la gestion de ce certificat. Aucune action supplémentaire n’est nécessaire lorsque agent-tls-mode est défini sur strict. Plus d’informations peuvent être trouvées sur ce paramètre dans Application des règles TLS de l’agent.

  • Let’s Encrypt : L’option Let’s Encrypt utilise également cert-manager. Cependant, dans ce cas, cert-manager est combiné avec un émetteur spécial pour Let’s Encrypt qui effectue toutes les actions (y compris la demande et la validation) nécessaires pour obtenir un certificat émis par Let’s Encrypt. Cette configuration utilise la validation HTTP (HTTP-01), donc l’équilibreur de charge doit avoir un enregistrement DNS public et être accessible depuis Internet. Lorsque vous définissez agent-tls-mode sur strict, vous devez également spécifier --privateCA=true et télécharger le CA Let’s Encrypt comme décrit dans Ajout de secrets TLS. Plus d’informations peuvent être trouvées sur ce paramètre dans Application des règles TLS de l’agent.

  • Apportez votre propre certificat : Cette option vous permet d’apporter votre propre certificat signé par une CA publique ou privée. Rancher utilisera ce certificat pour sécuriser le trafic websocket et HTTPS. Dans ce cas, vous devez télécharger ce certificat (et la clé associée) sous forme de fichiers encodés en PEM avec les noms tls.crt et tls.key. Si vous utilisez une CA privée, vous devez également télécharger ce certificat. Cela est dû au fait que cette CA privée peut ne pas être approuvée par vos nœuds. Rancher prendra ce certificat CA et générera une somme de contrôle à partir de celui-ci, que les différents composants de Rancher utiliseront pour valider leur connexion à Rancher. Si agent-tls-mode est défini sur strict, la CA doit être téléchargée, afin que les clusters en aval puissent se connecter avec succès. Plus d’informations peuvent être trouvées sur ce paramètre dans Application des règles TLS de l’agent.

Configuration Option du Helm Chart Nécessite cert-manager

Certificats générés par Rancher (par défaut)

ingress.tls.source=rancher

yes

Let’s Encrypt

ingress.tls.source=letsEncrypt

yes

Certificats à partir de fichiers

ingress.tls.source=secret

non

4. Installez cert-manager

Vous devez sauter cette étape si vous apportez vos propres fichiers de certificat (option ingress.tls.source=secret), ou si vous utilisez terminaison TLS sur un équilibreur de charge externe.

Cette étape est uniquement requise pour utiliser des certificats émis par la CA générée par Rancher (ingress.tls.source=rancher) ou pour demander des certificats émis par Let’s Encrypt (ingress.tls.source=letsEncrypt).

Cliquer pour développer
Important :

Les changements récents apportés à cert-manager nécessitent une mise à niveau. Si vous mettez à niveau Rancher et utilisez une version de cert-manager antérieure à v0.11.0, veuillez consulter notre documentation de mise à niveau.

Ces instructions sont adaptées de la documentation officielle de cert-manager.

Pour voir les options sur la façon de personnaliser l’installation de cert-manager (y compris pour les cas où votre cluster utilise des PodSecurityPolicies), consultez la documentation de cert-manager.

# If you have installed the CRDs manually, instead of setting `installCRDs` or `crds.enabled` to `true` in your Helm install command, you should upgrade your CRD resources before upgrading the Helm chart:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<VERSION>/cert-manager.crds.yaml

# Add the Jetstack Helm repository
helm repo add jetstack https://charts.jetstack.io

# Update your local Helm chart repository cache
helm repo update

# Install the cert-manager Helm chart
helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --set crds.enabled=true

Une fois que vous avez installé cert-manager, vous pouvez vérifier qu’il est déployé correctement en vérifiant l’espace de noms cert-manager pour les pods en cours d’exécution :

kubectl get pods --namespace cert-manager

NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-5c6866597-zw7kh               1/1     Running   0          2m
cert-manager-cainjector-577f6d9fd7-tr77l   1/1     Running   0          2m
cert-manager-webhook-787858fcdb-nlzsq      1/1     Running   0          2m

5. Installez Rancher avec Helm et votre option de certificat choisie

La commande exacte pour installer Rancher diffère en fonction de la configuration du certificat.

Cependant, indépendamment de la configuration du certificat, le nom de l’installation de Rancher dans l’espace de noms cattle-system doit toujours être rancher.

Tests et développement :

Cette commande finale pour installer Rancher nécessite un nom de domaine qui redirige le trafic vers Rancher. Si vous utilisez l’interface en ligne de commande Helm pour configurer une preuve de concept, vous pouvez utiliser un faux nom de domaine lors du passage de l’option hostname. Un exemple de faux nom de domaine serait <IP_OF_LINUX_NODE>.sslip.io, qui exposerait Rancher sur une IP où il est en cours d’exécution. Les installations en production nécessiteraient un vrai nom de domaine.

  • Certificats générés par Rancher

  • Let’s Encrypt

  • Certificats à partir de fichiers

Par défaut, Rancher génère une CA et utilise cert-manager pour émettre le certificat pour accéder à l’interface du serveur Rancher.

Parce que rancher est l’option par défaut pour ingress.tls.source, nous ne spécifions pas ingress.tls.source lors de l’exécution de la commande helm install.

  • Définissez le hostname sur le nom DNS que vous avez pointé vers votre équilibreur de charge.

  • Définissez le bootstrapPassword sur quelque chose d’unique pour l’utilisateur admin.

  • Pour installer une version spécifique de Rancher, utilisez l’option --version, exemple : --version 2.7.0

helm install rancher rancher-prime/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin

Attendez que Rancher soit déployé :

kubectl -n cattle-system rollout status deploy/rancher
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
deployment "rancher" successfully rolled out

Cette option utilise cert-manager pour demander et renouveler automatiquement les certificats Let’s Encrypt. C’est un service gratuit qui vous fournit un certificat valide, car Let’s Encrypt est une autorité de certification de confiance.

Vous devez avoir le port 80 ouvert, car le défi HTTP-01 ne peut être effectué que sur le port 80.

Dans la commande suivante,

  • hostname est défini sur l’enregistrement DNS public,

  • Définissez le bootstrapPassword sur quelque chose d’unique pour l’utilisateur admin.

  • ingress.tls.source est défini sur letsEncrypt

  • letsEncrypt.email est défini sur l’adresse e-mail utilisée pour la communication concernant votre certificat (par exemple, les avis d’expiration)

  • Définissez letsEncrypt.ingress.class sur ce que votre contrôleur d’entrée est, par exemple, traefik, nginx, haproxy, etc.

Lorsque agent-tls-mode est défini sur strict (la valeur par défaut pour les nouvelles installations de Rancher à partir de v2.9.0), vous devez fournir la valeur du chart privateCA=true (par exemple, via --set privateCA=true) et télécharger l’autorité de certification Let’s Encrypt comme indiqué dans Ajout de secrets TLS. Des informations sur l’identification de l’autorité de certification racine Let’s Encrypt peuvent être trouvées dans les docs de Let’s Encrypt. Si vous ne téléchargez pas l’autorité de certification, Rancher peut ne pas réussir à se connecter à de nouveaux clusters en aval ou à des clusters existants.

helm install rancher rancher-prime/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin \
  --set ingress.tls.source=letsEncrypt \
  --set letsEncrypt.email=me@example.org \
  --set letsEncrypt.ingress.class=nginx

Attendez que Rancher soit déployé :

kubectl -n cattle-system rollout status deploy/rancher
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
deployment "rancher" successfully rolled out

Dans cette option, des secrets Kubernetes sont créés à partir de vos propres certificats pour que Rancher puisse les utiliser.

Lorsque vous exécutez cette commande, l’option hostname doit correspondre à Common Name ou à une entrée Subject Alternative Names dans le certificat du serveur, sinon le contrôleur d’entrée ne sera pas configuré correctement.

Bien qu’une entrée dans Subject Alternative Names soit techniquement requise, avoir un Common Name correspondant maximise la compatibilité avec les anciens navigateurs et applications.

Si vous souhaitez vérifier si vos certificats sont corrects, consultez Comment vérifier le nom commun et les noms alternatifs du sujet dans mon certificat de serveur ?

  • Définissez le hostname.

  • Définissez le bootstrapPassword sur quelque chose d’unique pour l’utilisateur admin.

  • Définissez ingress.tls.source sur secret.

helm install rancher rancher-prime/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin \
  --set ingress.tls.source=secret

Si vous utilisez un certificat signé par une autorité de certification privée, ajoutez --set privateCA=true à la commande :

helm install rancher rancher-prime/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin \
  --set ingress.tls.source=secret \
  --set privateCA=true

Maintenant que Rancher est déployé, consultez Ajout de secrets TLS pour publier les fichiers de certificat afin que Rancher et le contrôleur d’entrée puissent les utiliser.

La configuration du chart Rancher offre de nombreuses options pour personnaliser l’installation afin de l’adapter à votre environnement spécifique. Voici quelques scénarios avancés courants.

Consultez les Options du chart pour la liste complète des options.

6. Vérifiez que le serveur Rancher est déployé avec succès

Après avoir ajouté les secrets, vérifiez si Rancher a été déployé avec succès :

kubectl -n cattle-system rollout status deploy/rancher
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
deployment "rancher" successfully rolled out

Si vous voyez l’erreur suivante : error: deployment "rancher" exceeded its progress deadline, vous pouvez vérifier l’état du déploiement en exécutant la commande suivante :

kubectl -n cattle-system get deploy rancher
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
rancher   3         3         3            3           3m

Cela devrait montrer le même nombre pour DESIRED et AVAILABLE.

7. Enregistrez vos Options

Assurez-vous d’enregistrer les options --set que vous avez utilisées. Vous devrez utiliser les mêmes options lorsque vous mettrez à niveau Rancher vers de nouvelles versions avec Helm.

Finalisation en cours

C’est tout. Vous devriez avoir un serveur Rancher fonctionnel.

Dans un navigateur web, allez à l’adresse DNS qui redirige le trafic vers votre équilibreur de charge. Vous devriez alors être accueilli par la page de connexion colorée.

Ça ne fonctionne pas ? Jetez un œil à la page Dépannage