Fermer

juin 12, 2023

Tutoriel Premiers pas avec Kubernetes sur AWS (mise à jour 2023) —

Tutoriel Premiers pas avec Kubernetes sur AWS (mise à jour 2023) —


Bienvenue dans ce tutoriel pour débutant sur l’utilisation de Kubernetes avec AWS. Dans ce didacticiel, nous vous guiderons tout au long du processus de configuration d’un cluster Kubernetes sur AWS, de déploiement d’un exemple d’application et de gestion de votre cluster. À la fin de ce didacticiel, vous aurez une solide compréhension des bases de Kubernetes et de son utilisation avec AWS.

Contenu:

  1. Présentation de Kubernetes
  2. Configuration d’un cluster Kubernetes sur AWS
  3. Déploiement d’un exemple d’application
  4. Gestion de votre grappe
  5. Questions courantes sur Kubernetes

Présentation de Kubernetes

Kubernetes est une plate-forme open source d’orchestration de conteneurs qui automatise le déploiement, la mise à l’échelle et la gestion des applications conteneurisées. Il a été initialement développé par Google et est maintenant maintenu par la Cloud Native Computing Foundation (CNCF). Kubernetes fournit un cadre puissant et flexible pour la gestion des conteneurs, ce qui en fait un outil essentiel pour le développement et le déploiement d’applications modernes.

Configuration d’un cluster Kubernetes sur AWS

Dans cette section, nous vous guiderons tout au long du processus de configuration d’un cluster Kubernetes sur AWS à l’aide du service Kubernetes géré, Amazon Elastic Kubernetes Service (EKS).

Conditions préalables

Avant de commencer, assurez-vous que vous disposez des éléments suivants :

  • un compte AWS
  • AWS CLI installé et configuré
  • kubectl installé
  • eksctl installé

Créer un cluster Kubernetes avec eksctl

eksctl est un outil de ligne de commande qui simplifie le processus de création et de gestion des clusters Kubernetes sur AWS. Pour créer un cluster, exécutez la commande suivante :

eksctl create cluster --name my-cluster --region us-west-2 --nodes 3

Cette commande crée un nouveau cluster Kubernetes nommé my-cluster dans le us-west-2 région avec trois nœuds de travail. La création du cluster peut prendre quelques minutes.

Configuration de kubectl pour utiliser votre cluster

Une fois votre cluster créé, vous devez configurer kubectl pour l’utiliser. Exécutez la commande suivante :

aws eks update-kubeconfig --region us-west-2 --name my-cluster

Cette commande met à jour votre configuration kubectl pour utiliser le nouveau cluster.

Déploiement d’un exemple d’application

Dans cette section, nous allons déployer un simple « Hello, World! » application à votre cluster Kubernetes.

Création d’un déploiement

Créer un fichier nommé hello-world.yaml avec le contenu suivant :

apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-world
spec:
replicas: 3
selector:
matchLabels:
app: hello-world
template:
metadata:
labels:
app: hello-world
spec:
containers:
- name: hello-world
image: gcr.io/google-samples/node-hello:1.0
ports:
- containerPort: 8080

Ce fichier YAML définit un déploiement Kubernetes qui crée trois répliques d’un « Hello, World! » application. Enregistrez le fichier et exécutez la commande suivante pour créer le déploiement :

kubectl apply -f hello-world.yaml

Exposer l’application

Pour accéder à l’application depuis l’extérieur du cluster, vous devez créer un service Kubernetes. Exécutez la commande suivante :

kubectl expose deployment hello-world --type=LoadBalancer --port=80 --target-port=8080

Cette commande crée un service LoadBalancer qui expose le « Hello, World! » application sur le port 80.

Accéder à l’application

Pour accéder à la page « Hello, World! » l’application, vous devez trouver l’adresse de l’équilibreur de charge. Exécutez la commande suivante :

kubectl get services

Cherchez le EXTERNAL-IP de la hello-world service. Une fois que vous avez l’adresse IP externe, ouvrez un navigateur Web et accédez à http://EXTERNAL-IP. Vous devriez voir le message « Hello, World! » message affiché.

Gestion de votre grappe

Dans cette section, nous aborderons certaines tâches de base pour la gestion de votre cluster Kubernetes, telles que la mise à l’échelle de votre application et la mise à jour de votre déploiement.

Mise à l’échelle de votre application

Pour faire évoluer votre application, vous pouvez mettre à jour le nombre de répliques dans votre déploiement. Par exemple, pour augmenter le nombre de répliques à 5exécutez la commande suivante :

kubectl scale deployment hello-world --replicas=5

Cette commande met à jour le déploiement pour avoir cinq répliques. Kubernetes créera automatiquement des pods supplémentaires pour atteindre le nombre de répliques souhaité.

Mise à jour de votre déploiement

Si vous devez mettre à jour votre application, vous pouvez mettre à jour l’image du conteneur dans votre déploiement. Par exemple, pour mettre à jour le « Hello, World! » application vers la version 2.0, exécutez la commande suivante :

kubectl set image deployment hello-world hello-world=gcr.io/google-samples/node-hello:2.0

Cette commande met à jour l’image du conteneur dans le déploiement, et Kubernetes effectuera automatiquement une mise à jour progressive pour remplacer les anciens pods par de nouveaux.

Surveillance de votre cluster

Pour surveiller l’état de votre cluster, vous pouvez utiliser le tableau de bord Kubernetes, une interface utilisateur Web permettant de gérer votre cluster. Pour accéder au tableau de bord, exécutez la commande suivante :

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

Ensuite, démarrez le proxy kubectl en exécutant :

kubectl proxy

Maintenant, vous pouvez accéder au tableau de bord en accédant à cette URL dans votre navigateur Web :

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/
➥https:kubernetes-dashboard:/proxy/

Questions fréquentes sur Kubernetes

Terminons en répondant à une question courante sur Kybernetes.

Quelle est la différence entre un pod et un déploiement ?

Un pod est l’unité la plus petite et la plus simple de Kubernetes et représente une instance unique d’un processus en cours d’exécution. Un déploiement est une abstraction de niveau supérieur qui gère l’état souhaité de votre application, tel que le nombre de répliques et l’image de conteneur à utiliser. Les déploiements créent et gèrent automatiquement les pods pour s’assurer que l’état souhaité est maintenu.

Qu’est-ce qu’un service Kubernetes ?

Un service Kubernetes est une abstraction qui définit un ensemble logique de pods et une politique pour y accéder. Les services fournissent une adresse IP et un nom DNS stables, ce qui facilite la découverte et l’accès à votre application au sein du cluster ou en externe.

Comment mettre à jour mon application dans Kubernetes ?

Pour mettre à jour votre application, vous pouvez mettre à jour l’image du conteneur dans votre déploiement à l’aide de la commande suivante :

kubectl set image

Kubernetes effectuera une mise à jour continue pour remplacer les anciens pods par de nouveaux, garantissant ainsi un temps d’arrêt nul.

Comment faire évoluer mon application dans Kubernetes ?

Pour faire évoluer votre application, vous pouvez mettre à jour le nombre d’instances dupliquées dans votre déploiement à l’aide de la commande suivante :

kubectl scale

Kubernetes créera ou supprimera automatiquement des pods pour atteindre le nombre de répliques souhaité.

Qu’est-ce que le tableau de bord Kubernetes ?

Le tableau de bord Kubernetes est une interface utilisateur Web permettant de gérer votre cluster Kubernetes. Il fournit une vue d’ensemble de l’état du cluster, ainsi que la possibilité de créer des ressources de suppression telles que des déploiements, des services et des pods.

Conclusion

En suivant ce didacticiel, vous avez appris les bases de l’utilisation de Kubernetes avec AWS, y compris la configuration d’un cluster Kubernetes sur AWS, le déploiement d’un exemple d’application et la gestion de votre cluster. Grâce à cette base, vous pouvez continuer à explorer des concepts et fonctionnalités Kubernetes plus avancés pour créer et déployer des applications évolutives et résilientes.






Source link