|
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.
-
kubectl - Outil de ligne de commande Kubernetes.
-
helm - Gestion de paquets pour Kubernetes. Consultez les exigences de version de Helm pour choisir une version de Helm à installer pour Rancher. Consultez les instructions fournies par le projet Helm pour votre plateforme spécifique.
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,
-
Installez cert-manager (sauf si vous apportez vos propres certificats, ou si TLS sera terminé sur un équilibreur de charge)
-
Installez Rancher avec Helm et votre option de certificat choisie
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-managerdans le cluster. Rancher utilisecert-managerpour émettre et maintenir ses certificats. Rancher générera un certificat CA propre et signera un certificat en utilisant ce CA.cert-managerest ensuite responsable de la gestion de ce certificat. Aucune action supplémentaire n’est nécessaire lorsqueagent-tls-modeest 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éfinissezagent-tls-modesurstrict, vous devez également spécifier--privateCA=trueet 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.crtettls.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. Siagent-tls-modeest défini surstrict, 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) |
|
|
Let’s Encrypt |
|
|
Certificats à partir de fichiers |
|
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 |
-
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
hostnamesur le nom DNS que vous avez pointé vers votre équilibreur de charge. -
Définissez le
bootstrapPasswordsur quelque chose d’unique pour l’utilisateuradmin. -
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,
-
hostnameest défini sur l’enregistrement DNS public, -
Définissez le
bootstrapPasswordsur quelque chose d’unique pour l’utilisateuradmin. -
ingress.tls.sourceest défini surletsEncrypt -
letsEncrypt.emailest 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.classsur ce que votre contrôleur d’entrée est, par exemple,traefik,nginx,haproxy, etc.
|
Lorsque |
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
bootstrapPasswordsur quelque chose d’unique pour l’utilisateuradmin. -
Définissez
ingress.tls.sourcesursecret.
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