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.

1. Configurer l’infrastructure et le registre privé

Dans cette section, vous allez provisionner l’infrastructure sous-jacente pour votre serveur de gestion Rancher dans un environnement isolé physiquement. Vous allez également configurer le registre d’images de conteneurs privé qui doit être accessible à vos nœuds Rancher.

Un environnement isolé physiquement est un environnement où le serveur Rancher est installé hors ligne ou derrière une passerelle de périmètre de sécurité.

L’infrastructure dépend de si vous installez Rancher sur un cluster Kubernetes K3s, un cluster Kubernetes RKE, ou un conteneur Docker unique. Pour plus d’informations sur chaque option d’installation, consultez cette page.

Rancher peut être installé sur n’importe quel cluster Kubernetes. Les tutoriels d’infrastructure RKE et K3s ci-dessous sont toujours inclus pour votre commodité.

  • K3s

  • RKE

Nous recommandons de configurer l’infrastructure suivante pour une installation à haute disponibilité :

  • Deux nœuds Linux, généralement des machines virtuelles, dans le fournisseur d’infrastructure de votre choix.

  • Une base de données externe pour stocker les données du cluster. PostgreSQL, MySQL et etcd sont pris en charge.

  • Un équilibreur de charge pour diriger le trafic vers les deux nœuds.

  • Un enregistrement DNS pour mapper une URL à l’équilibreur de charge. Cela deviendra l’URL du serveur Rancher, et les clusters Kubernetes en aval devront y accéder.

  • Un registre d’images privé pour distribuer des images de conteneurs à vos machines.

1. Configurer des nœuds Linux

Ces hôtes seront déconnectés d’Internet, mais doivent pouvoir se connecter à votre registre privé.

Assurez-vous que vos nœuds remplissent les exigences générales d’installation pour OS, environnement d’exécution de conteneur, matériel et réseau.

Pour un exemple d’une façon de configurer des nœuds Linux, référez-vous à ce tutoriel pour configurer des nœuds en tant qu’instances dans Amazon EC2.

2. Configurer le magasin de données externe

La capacité d’exécuter Kubernetes en utilisant un datastore autre qu’etcd distingue K3s des autres distributions Kubernetes. Cette fonctionnalité offre de la flexibilité aux opérateurs Kubernetes. Les options disponibles vous permettent de sélectionner un magasin de données qui correspond le mieux à votre cas d’utilisation.

Pour une installation K3s à haute disponibilité, vous devrez configurer l’une des bases de données externes suivantes :

  • PostgreSQL (certifié contre les versions 10.7 et 11.5)

  • MySQL (certifié contre la version 5.7)

  • etcd (certifié contre la version 3.3.15)

Lorsque vous installez Kubernetes, vous fournirez des détails pour que K3s se connecte à la base de données.

Pour un exemple d’une façon de configurer la base de données, consultez ce tutoriel pour configurer une base de données MySQL sur le service RDS d’Amazon.

Pour la liste complète des options disponibles pour la configuration d’un magasin de données de cluster K3s, consultez la documentation K3s.

3. Configurer l'équilibreur de charge

Vous devrez également configurer un équilibreur de charge pour diriger le trafic vers la réplique Rancher sur les deux nœuds. Cela empêchera une panne d’un nœud unique de couper les communications avec le serveur de gestion Rancher.

Lorsque Kubernetes sera configuré dans une étape ultérieure, l’outil K3s déploiera un contrôleur Ingress Traefik. Ce contrôleur écoutera sur les ports 80 et 443 des nœuds de travail, répondant au trafic destiné à des noms d’hôtes spécifiques.

Lorsque Rancher sera installé (également dans une étape ultérieure), le système Rancher créera une ressource Ingress. Cet Ingress indique au contrôleur Ingress Traefik d’écouter le trafic destiné au nom d’hôte Rancher. Le contrôleur Ingress Traefik, lorsqu’il reçoit du trafic destiné au nom d’hôte Rancher, transmettra ce trafic aux pods Rancher en cours d’exécution dans le cluster.

Pour votre mise en œuvre, envisagez si vous souhaitez ou avez besoin d’utiliser un équilibreur de charge de couche 4 ou de couche 7 :

  • Un équilibreur de charge de couche 4 est le choix le plus simple des deux, dans lequel vous redirigez le trafic TCP vers vos nœuds. Nous recommandons de configurer votre équilibreur de charge en tant qu’équilibreur de charge de couche 4, redirigeant le trafic vers les ports TCP/80 et TCP/443 vers les nœuds du cluster de gestion Rancher. Le contrôleur Ingress sur le cluster redirigera le trafic HTTP vers HTTPS et terminera SSL/TLS sur le port TCP/443. Le contrôleur Ingress transmettra le trafic au port TCP/80 vers le pod Ingress dans le déploiement Rancher.

  • Un équilibreur de charge de couche 7 est un peu plus compliqué mais peut offrir des fonctionnalités que vous pourriez vouloir. Par exemple, un équilibreur de charge de couche 7 est capable de gérer la terminaison TLS au niveau de l’équilibreur de charge, contrairement à Rancher qui effectue lui-même la terminaison TLS. Cela peut être bénéfique si vous souhaitez centraliser votre terminaison TLS dans votre infrastructure. L’équilibrage de charge de couche 7 offre également la capacité à votre équilibreur de charge de prendre des décisions basées sur des attributs HTTP tels que les cookies, etc. qu’un équilibreur de charge de couche 4 ne peut pas prendre en compte. Si vous décidez de terminer le trafic SSL/TLS sur un équilibreur de charge de couche 7, vous devrez utiliser l’option --set tls=external lors de l’installation de Rancher à une étape ultérieure. Pour plus d’informations, consultez le chart Helm de Rancher.

Pour un exemple montrant comment configurer un équilibreur de charge NGINX, consultez cette page.

Pour un guide pratique sur la configuration d’un équilibreur de charge réseau Amazon ELB, consultez cette page.

Important :

Ne pas utiliser cet équilibreur de charge (c’est-à-dire, l’Ingress du cluster local) pour équilibrer des applications autres que Rancher après l’installation. Partager cet Ingress avec d’autres applications peut entraîner des erreurs de websocket pour Rancher après les rechargements de configuration de l’Ingress pour d’autres applications. Nous recommandons de dédier le cluster local à Rancher et à aucune autre application.

4. Configurer l'enregistrement DNS

Une fois que vous avez configuré votre équilibreur de charge, vous devrez créer un enregistrement DNS pour envoyer le trafic à cet équilibreur de charge.

Selon votre environnement, cela peut être un enregistrement A pointant vers l’IP de l’équilibreur de charge, ou cela peut être un CNAME pointant vers le nom d’hôte de l’équilibreur de charge. Dans les deux cas, assurez-vous que cet enregistrement est le nom d’hôte sur lequel vous souhaitez que Rancher réponde.

Vous devrez spécifier ce nom d’hôte à une étape ultérieure lors de l’installation de Rancher, et il n’est pas possible de le changer par la suite. Assurez-vous que votre décision est définitive.

Pour une procédure sur la configuration d’un enregistrement DNS pour acheminer le trafic de domaine vers un équilibreur de charge Amazon ELB, consultez la documentation officielle d’AWS.

5. Configurer un registre d'images privé

Rancher prend en charge les installations en isolation physique utilisant un registre privé. Vous devez disposer de votre propre registre privé ou d’autres moyens de distribuer des images de conteneurs à vos machines.

Dans une étape ultérieure, lorsque vous configurerez votre cluster Kubernetes K3s, vous créerez un fichier de configuration des registres privés avec les détails de ce registre.

Si vous devez créer un registre privé, consultez les pages de documentation pour votre composant d’exécution respectif :

Pour installer le serveur de gestion Rancher sur un cluster RKE à haute disponibilité, nous recommandons de configurer l’infrastructure suivante :

  • Trois nœuds Linux, typiquement des machines virtuelles, dans un fournisseur d’infrastructure tel qu’Amazon EC2, Google Compute Engine ou vSphere.

  • Un équilibreur de charge pour diriger le trafic front-end vers les trois nœuds.

  • Un enregistrement DNS pour associer une URL à l’équilibreur de charge. Cela deviendra l’URL du serveur Rancher, et les clusters Kubernetes en aval devront y accéder.

  • Un registre d’images privé pour distribuer des images de conteneurs à vos machines.

Ces nœuds doivent être dans la même région/datacenter. Vous pouvez placer ces serveurs dans des zones de disponibilité séparées.

Pourquoi trois nœuds ?

Dans un cluster RKE, les données du serveur Rancher sont stockées sur etcd. Cette base de données etcd fonctionne sur les trois nœuds.

La base de données etcd nécessite un nombre impair de nœuds afin de pouvoir toujours élire un leader avec une majorité du cluster etcd. Si la base de données etcd ne peut pas élire de leader, etcd peut souffrir de cerveau divisé, nécessitant la restauration du cluster à partir d’une sauvegarde. Si l’un des trois nœuds etcd échoue, les deux nœuds restants peuvent élire un leader car ils ont la majorité du nombre total de nœuds etcd.

1. Configurer des nœuds Linux

Ces hôtes seront déconnectés d’Internet, mais doivent pouvoir se connecter à votre registre privé.

Assurez-vous que vos nœuds remplissent les exigences générales d’installation pour OS, environnement d’exécution de conteneur, matériel et réseau.

Pour un exemple d’une façon de configurer des nœuds Linux, référez-vous à ce tutoriel pour configurer des nœuds en tant qu’instances dans Amazon EC2.

2. Configurer l'équilibreur de charge

Vous devrez également configurer un équilibreur de charge pour diriger le trafic vers la réplique Rancher sur les deux nœuds. Cela empêchera une panne d’un nœud unique de couper les communications avec le serveur de gestion Rancher.

Lorsque Kubernetes sera configuré dans une étape ultérieure, l’outil RKE déploiera un contrôleur Ingress NGINX. Ce contrôleur écoutera sur les ports 80 et 443 des nœuds de travail, répondant au trafic destiné à des noms d’hôtes spécifiques.

Lorsque Rancher sera installé (également dans une étape ultérieure), le système Rancher créera une ressource Ingress. Cet Ingress indique au contrôleur Ingress NGINX d’écouter le trafic destiné au nom d’hôte Rancher. Le contrôleur Ingress NGINX, lorsqu’il reçoit du trafic destiné au nom d’hôte Rancher, transmettra ce trafic aux pods Rancher en cours d’exécution dans le cluster.

Pour votre mise en œuvre, envisagez si vous souhaitez ou avez besoin d’utiliser un équilibreur de charge de couche 4 ou de couche 7 :

  • Un équilibreur de charge de couche 4 est le choix le plus simple des deux, dans lequel vous redirigez le trafic TCP vers vos nœuds. Nous recommandons de configurer votre équilibreur de charge en tant qu’équilibreur de charge de couche 4, redirigeant le trafic vers les ports TCP/80 et TCP/443 vers les nœuds du cluster de gestion Rancher. Le contrôleur Ingress sur le cluster redirigera le trafic HTTP vers HTTPS et terminera SSL/TLS sur le port TCP/443. Le contrôleur Ingress transmettra le trafic au port TCP/80 vers le pod Ingress dans le déploiement Rancher.

  • Un équilibreur de charge de couche 7 est un peu plus compliqué mais peut offrir des fonctionnalités que vous pourriez vouloir. Par exemple, un équilibreur de charge de couche 7 est capable de gérer la terminaison TLS au niveau de l’équilibreur de charge, contrairement à Rancher qui effectue lui-même la terminaison TLS. Cela peut être bénéfique si vous souhaitez centraliser votre terminaison TLS dans votre infrastructure. L’équilibrage de charge de couche 7 offre également la capacité à votre équilibreur de charge de prendre des décisions basées sur des attributs HTTP tels que les cookies, etc. qu’un équilibreur de charge de couche 4 ne peut pas prendre en compte. Si vous décidez de terminer le trafic SSL/TLS sur un équilibreur de charge de couche 7, vous devrez utiliser l’option --set tls=external lors de l’installation de Rancher à une étape ultérieure. Pour plus d’informations, consultez le options du chart Helm de Rancher.

Pour un exemple montrant comment configurer un équilibreur de charge NGINX, consultez cette page.

Pour une procédure sur la configuration d’un équilibreur de charge réseau Amazon ELB, consultez cette page.

N’utilisez pas cet équilibreur de charge (c’est-à-dire l'`local`Ingress du cluster) pour équilibrer des applications autres que Rancher après l’installation. Partager cet Ingress avec d’autres applications peut entraîner des erreurs de websocket pour Rancher après les rechargements de configuration de l’Ingress pour d’autres applications. Nous recommandons de dédier le cluster local à Rancher et à aucune autre application.

3. Configurer l'enregistrement DNS

Une fois que vous avez configuré votre équilibreur de charge, vous devrez créer un enregistrement DNS pour envoyer le trafic à cet équilibreur de charge.

Selon votre environnement, cela peut être un enregistrement A pointant vers l’IP de l’équilibreur de charge, ou cela peut être un CNAME pointant vers le nom d’hôte de l’équilibreur de charge. Dans les deux cas, assurez-vous que cet enregistrement est le nom d’hôte sur lequel vous souhaitez que Rancher réponde.

Vous devrez spécifier ce nom d’hôte à une étape ultérieure lors de l’installation de Rancher, et il n’est pas possible de le changer par la suite. Assurez-vous que votre décision est définitive.

Pour une procédure sur la configuration d’un enregistrement DNS pour acheminer le trafic de domaine vers un équilibreur de charge Amazon ELB, consultez la documentation officielle d’AWS.

4. Configurer un registre d'images privé

Rancher prend en charge les installations en isolation physique utilisant un registre privé sécurisé. Vous devez disposer de votre propre registre privé ou d’autres moyens de distribuer des images de conteneurs à vos machines.

Dans une étape ultérieure, lorsque vous configurerez votre cluster Kubernetes RKE, vous créerez un fichier de configuration des registres privés avec les détails de ce registre.

Si vous devez créer un registre privé, consultez les pages de documentation pour votre composant d’exécution respectif :