Comment configurer un cluster Kubernetes sur AWS en utilisant Kops

Kops est utilisé pour mettre en place le cluster Kubernetes de la manière la plus simple possible. C’est un outil en ligne de commande utilisé pour créer des clusters Kubernetes. Kops prend officiellement en charge AWS, tandis que GCP, DigitalOcean et OpenStack sont en version bêta. Kops peut aussi générer des fichiers Terraform pour la configuration de cluster requise. On peut non seulement créer facilement un cluster avec Kops, mais aussi modifier, supprimer et mettre à niveau la version de Kubernetes dans le cluster.

Dans cet article, nous allons voir les étapes pour créer un cluster Kubernetes avec 1 nœud maître et 1 nœud travailleur sur AWS. Avant de poursuivre, nous supposons que tu connais déjà Kubernetes.

Pré-requis

  1. Compte AWS(Créer si tu n’en as pas).
  2. Instance EC2 Ubuntu 18.04 (Cliqueici pour apprendre à créer une instance EC2 sur AWS ).
  3. Bucket S3 (Cliqueici pour apprendre à créer un Bucket S3 sur AWS).
  4. Nom de domaine (Cherche « Comment acheter un nom de domaine sur AWS ? » pour comprendre les étapes de la création d’un domaine sur AWS).
  5. Rôle IAM avec des autorisations suffisantes/admin (cliqueici pour apprendre à créer un rôle IAM sur AWS).

Que ferons-nous ?

  1. Connecte-toi à AWS.
  2. Vérifie le Bucket S3, le Rôle IAM.
  3. Attache le rôle IAM à l’instance.
  4. Installe Kubectl et Kops sur l’instance EC2.
  5. Valide les règles Recordset et une zone hébergée.
  6. Crée un Cluster Kubernetes en utilisant Kops.
  7. Supprime le cluster.

Connecte-toi à AWS

Cliqueici pour aller à la page de connexion où tu peux entrer tes informations d’identification pour accéder au compte.

Login page

Une fois que tu t’es connecté avec succès à ton compte AWS, tu verras la console de gestion AWS principale comme suit.

Console principale d'AWS

Vérifie le Bucket S3, le rôle IAM

Pour créer un cluster à l’aide de Kops, nous avons besoin d’un seau S3 où Kops stockera toute la configuration du cluster.

Vérifie le seau que tu veux utiliser pour stocker les configurations de Kops.

Seau S3

Vérifie si le rôle IAM que tu vas utiliser a des permissions suffisantes/admin. Kops n’a pas besoin de permissions admin, si tu n’es pas très au fait d’AWS IAM et des permissions et que tu ne veux pas tomber dans des problèmes d’accès, tu peux utiliser la permission admin.

IAM Role

Attache le rôle IAM à l’instance

Une fois que tu as le rôle, attache-le à l’instance EC2 que tu utiliseras pour exécuter les commandes kops. Va sur EC2 –> sélectionne l’instance EC2 –> clique sur Actions –> Sécurité –> Modifier le rôle IAM.

Mettre à jour l'instance EC2

Sélectionne le rôle IAM et enregistre les modifications.

Attache le rôle IAM à l'instance EC2

Installe Kubectl et Kops sur l’instance EC2

Jusqu’à présent, tu as un seau S3 et une instance EC2 avec le rôle requis attaché à celle-ci. Connecte-toi maintenant à l’instance EC2 que tu utiliseras pour créer un cluster à l’aide de Kops.

L’étape suivante consiste à installer Kubectl sur l’instance EC2.

Exécute les commandes suivantes pour installer kubectl sur le serveur Ubuntu

curl -LO « https://dl.k8s.io/release/$(curl -L -s

curl -LO « https://dl.k8s.io/$(curl -L -s

echo « $(<kubectl.sha256) kubectl » | sha256sum –check

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

mkdir -p ~/.local/bin/kubectl

mv ./kubectl ~/.local/bin/kubectl

Vérifie la version de kubectl à l’aide de la commande suivante.

kubectl version –client

Installe Kops sur l'instance EC2

Tu es maintenant prêt à installer Kops sur la même instance EC2.

Vérifie si le kops existe, sinon installe-le à l’aide des commandes suivantes sur le serveur Ubuntu.

kops

curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d ‘ »‘ -f 4)/kops-linux-amd64

chmod +x kops-linux-amd64

sudo mv kops-linux-amd64 /usr/local/bin/kops

Tu devrais maintenant avoir kops sur le serveur.

kops

Installe Kubectl sur l'instance EC2

Valide les règles de Recordset et une zone hébergée.

Kops a besoin des enregistrements DNS requis pour construire un cluster.

Ici, j’ai une deuxième zone hébergée dans route53.

Créer une zone hébergée

De plus, j’ai copié les serveurs NS de mon SOUS-DOMAIN vers le domaine PARENT dans Route53.

Va dans Route53 — > Zones hébergées — > Va dans la zone hébergée principale par défaut — > Vérifie le jeu d’enregistrements et vérifie ses valeurs.

Crée un jeu d'enregistrements dans la zone hébergée principale

Créer un cluster Kubernetes à l’aide de Kops

Nous sommes maintenant prêts à créer un cluster. Avant de créer un cluster, voyons ce que nous obtenons lorsque nous essayons de répertorier les clusters.

kops get clusters

La commande ci-dessus échouera car elle a besoin d’un seau S3 comme paramètre.

kops get clusters –state s3://kops.devopslee.com

Comme il n’y a pas de clusters existants, la commande ne listera rien.

Si tu ne veux pas donner le nom du seau s3 comme paramètre à la commande, tu peux exporter sa valeur dans le terminal vers la variable « KOPS_STATE_STORE ».

export KOPS_STATE_STORE=s3://kops.devopslee.com

Cette fois, tu n’as pas besoin de spécifier le seau S3 dans la commande

kops get clusters

Obtenir un cluster

Maintenant, essayons de créer un cluster avec-

  1. 1 nœud maître avec l’instance de type t2.medium
  2. 1 nœud ouvrier avec l’instance de type t2.micro
  3. Zone de disponibilité comme us-east-1a,us-east-1b,us-east-1c

kops create cluster –name kops.devopslee.com –state s3://kops.devopslee.com –cloud aws –master-size t2.medium –master-count 1 –master-zones us-east-1a –node-size t2.micro –node-count 1 –zones us-east-1a,us-east-1b,us-east-1c

La commande ci-dessus donnera des erreurs car nous n’avons pas spécifié de clé ssh.

Vérifie si tu as une paire de clés dans ton instance.

ls -l ~/.ssh/

Si tu n’as pas de paire de clés, tu peux la créer à l’aide de la commande suivante.

ssh-keygen

Génère des clés ssh

Cette fois, si tu exécutes à nouveau la commande create, elle échouera car le S3 a été mis à jour par la commande précédente avec la configuration du cluster même si elle a échoué en raison de l’absence de clé ssh.

kops create cluster –name kops.devopslee.com –state s3://kops.devopslee.com –cloud aws –master-size t2.medium –master-count 1 –master-zones us-east-1a –node-size t2.micro –node-count 1 –zones us-east-1a,us-east-1b,us-east-1c –ssh-public-key ~/.ssh/id_rsa.pub

Supprimons donc la configuration du cluster et recréons le cluster avec la clé ssh.

kops delete cluster –name kops.devopslee.com –state s3://kops.devopslee.com –yes

La récréation échoue, supprime la configuration du cluster

Cette fois, nous transmettons la clé publique ssh lors de la création du cluster.

kops create cluster –name kops.devopslee.com –state s3://kops.devopslee.com –cloud aws –master-size t2.medium –master-count 1 –master-zones us-east-1a –node-size t2.micro –node-count 1 –zones us-east-1a,us-east-1b,us-east-1c –ssh-public-key ~/.ssh/id_rsa.pub

Crée une configuration de cluster avec une clé privée

Tout d’abord, la configuration du cluster sera créée.

Détails des créations de clusters

Maintenant, nous avons la configuration du cluster. Si nous voulons apporter des modifications à la configuration, nous pouvons le faire, sinon nous pouvons procéder à la création du cluster. Tu peux aller dans le seau S3 et y voir une configuration de cluster.

Configuration mise à jour dans le seau S3

Cette fois, tu pourras voir que le cluster est disponible.

kops get cluster

Mais les ressources ne sont pas encore créées.

Pour créer les ressources immédiatement, nous devons mettre à jour le cluster avec –yes comme option à la commande.

kops update cluster –name kops.devopslee.com –yes

Mets à jour le cluster pour créer des ressources cloud

La création du cluster prendra un certain temps. Tu peux valider l’état du cluster à l’aide de la commande « validate » suivante.

kops validate cluster –wait 10m

Valide le cluster, le cluster peut prendre 10 minutes pour devenir actif.

Une fois que toutes les ressources du cluster sont créées, le cluster sera prêt à être utilisé.

Cluster dans l'état Prêt

Une fois que les instances EC2 sont prêtes, kops met à jour la zone Hosted avec des enregistrements A contenant les IP du maître.

Les enregistrements sont mis à jour avec l'IP du nœud maître

Tu es maintenant prêt à utiliser le cluster. Pour vérifier les pods existants dans l’espace de noms par défaut, exécute la commande suivante.

kubectl get pods

Tu peux même vérifier les pods de tous les espaces de noms

kubectl get pods -A

Vérifie les nœuds du cluster.

kubectl get nodes

Pour récupérer plus de détails sur les nœuds, utilise -o wide dans la commande.

kubectl get nodes -o wide

Vérifie les pods du système dans le cluster

Supprimer le cluster

Si tu n’as plus besoin du cluster, tu peux le supprimer facilement en utilisant Kops.

kops get cluster

Il te suffit d’exécuter une seule commande.

kops delete cluster –name kops.devopslee.com –state s3://kops.devopslee.com –yes

Kops supprimera toutes les ressources qu’il a créées pour le cluster afin de le rendre entièrement fonctionnel.

Suppression du cluster réussie

Conclusion

Dans cet article, nous avons vu toutes les étapes pour créer un cluster Kubernetes à l’aide de Kops. Nous avons vu que Kops a besoin d’un domaine pour créer un cluster entièrement fonctionnel. Nous avons vu à quel point il est facile de créer et de supprimer un cluster à l’aide de Kops.

Vous aimerez aussi...