Kubernetes

kubernetes

Qu’est-ce que Kubernetes (également appelé K8s) ?

Kubernetes est comme un bureau de poste, qui gère les environnements conteneurisés et s’assure que les colis sont correctement livrés. Peu importe la distance, qu’elle soit locale ou internationale, tant que nous connaissons l’adresse du destinataire, la poste s’occupe du reste. Cependant, la durée de la livraison dépend de la taille du colis et de la distance à parcourir. L’objectif principal est toujours de s’assurer que le paquet est livré là où il est censé l’être.

Imaginez maintenant que Kubernetes soit un bureau de poste, mais uniquement pour les conteneurs. Nous pouvons déclarer tout ce que nous devons faire avec nos conteneurs, mais nous ne nous soucions pas de la manière dont cela est fait. Les environnements conteneurisés dans Kubernetes sont comme des boîtes et ils sont appelés pods. Chaque pod peut contenir un ou plusieurs conteneurs. Le pod contient également des informations sur son destinataire, son lieu d’exécution et le temps que vous devrez attendre pour y arriver. Et bien sûr, chaque pod a son propre nom unique et son adresse IP. Enfin, nous allons mettre l’application dans la boîte et décrire comment et où cette boîte est livrée.

Fait amusant : le mot Kubernetes signifie capitaine ou pilote en grec.

Pourquoi K8s

Les avantages

Évolutivité

Une autre fonctionnalité impressionnante de Kubernetes est la mise à l’échelle automatique, qui permet aux entreprises d’augmenter ou de diminuer leur capacité en fonction de la demande réelle. Avec la mise à l’échelle automatique, Kubernetes peut vous aider à surveiller et à augmenter le nombre de pods en cas d’augmentation du trafic et à réduire le nombre de pods lorsque la charge de trafic est faible. En outre, cela permet également de réaliser des économies car nous ne payons pas pour des ressources que nous n’utilisons pas.

Exemple

Exemple Si nous avons soudainement 100 000 utilisateurs qui se rendent sur https://app.sca3.wpenginepowered.com, notre serveur devra s’adapter pour gérer cette quantité de charge, K8s créera automatiquement plus de pods (disons 10-15 nouveaux pods) pour répartir la charge des 100 000 utilisateurs. Lorsque le nombre d’utilisateurs retombera à 1 000 ou 100, K8s tuera automatiquement les pods « supplémentaires » pour nous aider à réduire les coûts (car ils ne sont plus nécessaires).

Haute disponibilité

En cas de panne ou de défaillance d’un nœud, ou si un conteneur ne répond pas, Kubernetes vous aidera à remplacer les conteneurs ou à tuer les conteneurs qui ne répondent pas au contrôle de santé configuré. Habituellement, nous configurons au moins 2 nœuds prêts pour l’instance de notre client afin de garantir la disponibilité. Grâce à cette configuration, nous sommes en mesure d’effectuer notre déploiement de production avec peu ou pas de temps d’arrêt pour l’instance de notre client, car un seul nœud sera mis hors service, un à la fois, tandis que l’autre sera toujours disponible.

Exemple

Exemple Un bon exemple pour expliquer ceci est de parler de la version (par exemple, la version de production M47). Disons que l’instance SCA a 2 pods (Pod A et Pod B). Le pod A et le pod B ont tous deux le code M46 actuellement.

Pendant la mise en production, k8s va automatiquement créer un troisième pod (Pod C) avec le code M47. Lorsque Pod C sera prêt, k8s éteindra lentement Pod A et Pod B pour éviter tout temps d’arrêt. Lentement, tout sera basculé sur la base de code M47.

Reprise après sinistre

Kubernetes utilise un magasin de valeurs de clés cohérent et hautement disponible appelé etcd qui agit comme un magasin de sauvegarde pour toutes les données du cluster. En cas de défaillance du cluster, nous pouvons utiliser les snapshots stockés dans l’etcd pour restaurer le cluster et ses composants dans leur état actuel.

Exemple

Pensez donc à etcd comme à un disque dur externe que vous avez ou à un stockage en ligne comme apple cloud ou google drive. Ils peuvent agir comme une sauvegarde pour nos précieuses photos que vous avez prises lorsque vous étiez en vacances l’été dernier. Si vous avez accidentellement supprimé vos photos de votre téléphone, vous pouvez toujours les récupérer sur votre disque dur externe ou sur le stockage en ligne. Plutôt cool. Maintenant, pour Kubernetes, ils ont un stockage intégré qui conserve tous les états actuels de temps en temps et si quelque chose de mauvais se produit, nous pouvons utiliser ces états que nous avons sauvegardés pour restaurer nos clusters.

Comment cela se présente-t-il dans Connect ?

Voici un exemple de la façon dont une requête se termine dans notre cluster k8s

Dans l’exemple ci-dessus, lorsque vous (l’utilisateur) cliquez sur le bouton « Visiter » de Google Chrome à l’adresse https://app.sca3.wpenginepowered.com , la page Web frontale envoie une requête (API) à notre cluster GKE pour obtenir les dernières nouvelles de l’utilisateur actuel (utilisateur A dans le diagramme).

La demande atterrira d’abord sur notre serveur web Ingress (proxy inverse), qui se chargera de l’équilibrage de la charge et attribuera la demande à l’un des pods actifs présents dans notre cluster.

Dans l’exemple ci-dessus, seuls les pods #2 et #3 sont actuellement libres et le pod #3 est choisi pour répondre à la demande. Tous les mécanismes se déroulent automatiquement dans notre cluster Kubernetes.

Le pod exécute notre implémentation backend, récupère les informations nécessaires dans la base de données, reconditionne le tout joliment et renvoie les données à notre joli frontend.

Chaque instance de Connect sur notre cluster de production Kubernetes dispose d’au moins deux pods pour répondre aux demandes. Si l’un d’eux échoue ou prend trop de temps à répondre, le cluster génère automatiquement de nouveaux pods et remplace les pods défaillants.

Cela permet de garantir un temps de fonctionnement de 100 % pour toutes les instances.

Nous sommes Swiss Connect Academy

Nous nous réjouissons de vous présenter nos services !

Articles connexes