Fermer

décembre 2, 2021

Kubernetes sur Multi-Cloud avec Terraform6 minutes de lecture



Kubernetes (K8s) est une plate-forme open source qui gère les charges de travail et les services conteneurisés et accélère la configuration et l'automatisation déclaratives. K8s est souvent décrit comme une plate-forme d'orchestration de conteneurs.

Les conteneurs fournissent un mécanisme léger pour isoler l'environnement d'une application. Par exemple, la conteneurisation d'une application signifie non seulement créer un package qui contient une application, mais toutes les dépendances nécessaires à l'exécution de cette application. En tant que plate-forme d'orchestration de conteneurs, K8s gère l'intégralité du cycle de vie des conteneurs, en activant et en arrêtant les ressources selon les besoins. Pour créer un cluster à nœud unique, nous pouvons utiliser minikube, où nous pouvons exécuter un cluster K8s à nœud unique sur un ordinateur portable ou un ordinateur de bureau. Dans l'environnement de production, nous avons besoin d'un cluster avec des ressources de calcul élevées, car un cluster à nœud unique ne peut pas satisfaire ce besoin, et il échoue à la fonctionnalité de haute disponibilité pour le cluster car il n'a qu'un seul nœud.

Il existe de nombreuses façons de créer un cluster. cluster K8s multi-nœuds. L'un d'eux utilise l'outil kubeadmqui fournit « kubeadm init » et « kubeadm join » comme meilleure pratique pour créer un cluster. Dans cet article, nous allons configurer le cluster Kubernetes multi-nœuds sur Amazon Web Services (AWS) et Azure Multi Cloudqui inclut les fournisseurs de cloud AWS et Azure. Le cloud AWS aura un nœud maître et un nœud de travail alors qu'Azure aura un autre nœud de travail.

Vous trouverez ci-dessous les ressources dont vous aurez besoin pour créer un cluster :

  • Maître et un nœud de travail sur AWS
  • Un autre nœud de travail sur Azure
  • Terraform pour le provisionnement des instances sur AWS et Azure
  • Script Bash pour la configuration des nœuds maîtres et esclaves

Les prérequis suivants sont nécessaires :

  • Avoir un compte AWS[19659008]Avoir un compte Azure
  • AWS CLIv2 doit être installé et configuré
  • Azure CLI doit être installé et configuré
  • Terraform : un outil d'infrastructure en tant que code qui vous permet de créer, modifier, gérer et versionnez votre infrastructure. Son seul objectif est de fournir un flux de travail pour le provisionnement de l'infrastructure.

Ci-dessous, nous pouvons voir le code Terraform pour le provisionnement des nœuds maître et travailleur sur AWS et Azure cloud via un seul script Terraform.

Les étapes ci-dessous vous montreront comment créer un cluster Kubernetes multi-nœuds sur AWS et Azure :

Étape 1 : fournissez le nœud maître et un nœud de travail sur AWS Cloud et un autre nœud de travail sur Azure.

Conformément au code Terraform ci-dessus, vous pouvez créer des nœuds maître et travailleur sur AWS et Azure.

  • Lors de la création instances sur AWS, il est nécessaire d'utiliser instance_type=t2.medium (2vCPU, 4GiB RAM) avec le système d'exploitation Amazon Linux 2. Le groupe de sécurité est déjà créé et utilisé ici.
  • Lors du provisionnement de cette instance sur Azure, il est nécessaire d'utiliser « » vm_size=Standard_B2s(2vCPU, 4GiB RAM)", os doit être "rhel8". Pour vous connecter, nous devrons créer un nom d'utilisateur et un mot de passe.

Exécutez la commande suivante pour le provisionnement :

terraform init

terraform apply

 

Voici votre sortie :

  • AWS maître et nœud de travail provisionnés à l'aide de Terraform

  • Vous trouverez ci-dessous le nœud de travail Azure créé à l'aide de Terraform :

Les développeurs peuvent gagner du temps pour écrire des commandes en utilisant les scripts bash. Le script Bash est la série de commandes dans un fichier texte brut. Par conséquent, lorsque vous disposez d'un ensemble de commandes que vous exécuterez fréquemment, envisagez d'écrire un script bash pour celui-ci.

Étape 2 : Configurer le K8s Master

Nous avons maintenant créé un script bash pour configurer les nœuds maître et esclave. Le nœud maître est lancé sur AWS Cloud à l'aide de Terraform. Ensuite, connectez-vous à la machine virtuelle (VM) et configurez le nœud maître à l'aide du script bash. Dans le script bash, nous aurons d'abord configuré le référentiel pour installer "kubeadm", "kubectl", "kubelet" et "docker", puis démarrer et activer le service "docker" et "kubelet". Ensuite, vous devrez changer le "docker cgroupdriver" en "systemd". Enfin, vous allez créer des répertoires pour stocker les fichiers de configuration « kube » et la dernière étape consiste à appliquer la flanelle.

Vous trouverez ci-dessous la sortie :

Étape 3 : configurer le nœud de travail dans AWS

Dans le nœud de travail, nous devons configurer le référentiel pour K8s pour installer « kubelet », « kubeadm », « kubectl » et « docker ». Vous allez démarrer et activer le service de « kubectl » et « docker ». Ensuite, changez le "cgroupdriver" de "docker" en "systemd". Maintenant, nous configurons les tables IP et exécutons la commande de jeton « join ».

Étape 4 : Configurer le nœud de travail dans Azure

Nous avons utilisé Red Hat Enterprise Linux (RHEL 8) système d'exploitation pour Azure et Amazon Linux 2 pour AWS. Maintenant, la même configuration doit être effectuée pour le nœud de travail Azure afin que nous puissions configurer le référentiel pour le K8. Les étapes suivantes sont les mêmes que pour le nœud AWS. Dernier besoin d'exécuter la commande token join fournie par le nœud maître.

Après avoir exécuté le script bash respectif dans les nœuds de travail AWS et Azure, nous devons ensuite exécuter la commande join fournie par le nœud maître :

kubeadm join VM_PUBLIC_IPv4:6443 –token TOKEN –discovery-token-ca-cert-hash CERT_HASH

Enfin, vous exécuterez la commande « kubectl get node » sur le nœud maître :

Il s'agit de la sortie finale où nous pouvons voir que le premier nœud est le nœud de travail Azure, le second est le nœud maître AWS et le troisième est le nœud de travail AWS. De cette façon, nous avons configuré le cluster K8s multi-nœuds sur AWS et Azure à l'aide de Terraform. Pour plus d'informations sur ces processus, contactez nos experts dès aujourd'hui.

À propos de l'auteur

Mohini Rahate est un professionnel de l'informatique qualifié ayant une expérience des plates-formes cloud, y compris le développement, l'administration et la migration du cloud. Elle développe des solutions créatives, exploite les processus DevOps et fournit des solutions d'ingénierie pour les organisations.

Plus de cet auteur




Source link

0 Partages