GNU/Linux >> Tutoriels Linux >  >> Linux

Principes de base de Kubernetes pour les administrateurs système

Dans ce premier d'une série en deux parties, cet article examine les similitudes et les différences entre les conteneurs, les machines virtuelles, ainsi que les avantages et les inconvénients de chaque technologie. J'examine également Kubernetes (souvent écrit en tant que K8) et pourquoi il a vu le jour.

Conteneurs

En termes simples, considérez les conteneurs comme des boîtes standard de logiciels pouvant être utilisées comme unité de déploiement autonome dans n'importe quelle infrastructure. Les conteneurs sont livrés avec du code et toutes les dépendances à l'intérieur. Ils sont légers, autonomes et contiennent tous les runtimes, paramètres et outils système nécessaires à l'exécution des applications.

Machines virtuelles

Les machines virtuelles (VM) sont des programmes en bac à sable (machines invitées) qui se comportent comme des machines physiques et s'exécutent sur du matériel physique et des systèmes d'exploitation (machines hôtes). La virtualisation revient à créer plusieurs machines à l'intérieur d'une machine. Le logiciel à l'intérieur de la machine virtuelle n'interfère pas avec le système d'exploitation hôte. Cela rend les machines virtuelles idéales pour tester les applications bêta, disséquer et étudier les fichiers infectés par des virus et explorer tout autre logiciel que vous ne souhaitez pas placer sur un système physique. Les systèmes hôtes de machines virtuelles sont conçus et équipés pour accueillir plusieurs machines virtuelles, de quelques à plusieurs dizaines selon les technologies et le matériel concernés.

[ Les lecteurs ont également aimé : Automatiser le déploiement de machines virtuelles avec Ansible :Conception ]

Chaque VM utilise son propre processeur virtuel, sa propre mémoire, son propre disque dur et ses propres cartes d'interface réseau (NIC), qui correspondent aux ressources de la machine physique. Fondamentalement, les machines virtuelles sont des environnements de test qui peuvent vous faire économiser de l'argent, du temps et d'autres ressources en raison de leur disponibilité, de leurs temps de construction rapides et de leur portabilité entre les hôtes. Les VM fournissent des environnements sécurisés pour tester les derniers logiciels et applications sans risquer d'endommager votre système hôte physique.

Remarque :Bien que les machines virtuelles et les hôtes soient logiquement séparés les uns des autres, les machines virtuelles elles-mêmes ne sont ni plus ni moins sécurisées qu'un système d'exploitation autonome sur une machine physique. Et les systèmes en réseau, physiques ou virtuels, sont tout aussi vulnérables aux attaques et aux défis basés sur le réseau.

Il existe des différences essentielles entre les VM et les conteneurs

Maintenant que vous connaissez la définition et certains cas d'utilisation des VM et des conteneurs, vous pouvez comparer les principales différences entre les VM et les conteneurs dans le tableau ci-dessous :

Kubernetes

Kubernetes est un système open source permettant d'automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. K8s, anciennement connu sous le nom de Borg, était utilisé par Google avant de devenir un projet open source. Il est maintenant maintenu et géré par la CNCF (Cloud Native Computing Foundation). Les K8 regroupent les conteneurs dans une unité logique appelée pod. Les pods forment des applications. Les pods facilitent également la gestion et la découverte.

Pourquoi devrions-nous utiliser Kubernetes ?

Alors que les microservices et le cloud commençaient à se développer, il était nécessaire de gérer des milliers de conteneurs exécutés sur un système. Cela était dû en partie aux exigences de haute disponibilité et à d'autres nécessités.

Les principaux avantages de Kubernetes incluent :

  • Déploiements et restaurations automatisés :facilite le déploiement automatique des modifications tout en s'assurant que tous les pods ne disparaissent pas en même temps. Il surveille l'état et peut être utilisé pour annuler les modifications.
  • Découverte de services et équilibrage de charge :permet d'attribuer aux pods (qui sont des wrappers pour les conteneurs) leurs propres adresses IP et un nom DNS unique. Les K8 aident également à équilibrer la charge.
  • Topologie du service :permet d'acheminer le trafic du service en fonction de la topologie du cluster.
  • Orchestration du stockage :monte le système de stockage de votre choix, tel que le stockage local ou les services de stockage du fournisseur cloud.
  • Évolutivité :augmente ou réduit votre application en fonction de l'utilisation du processeur via l'interface de ligne de commande ou une interface graphique.
  • Autoréparation :redémarre les conteneurs défaillants, supprime les conteneurs qui ne répondent pas aux demandes des utilisateurs et aide à afficher les conteneurs qui ne répondent pas à votre vérification de l'état.

Cas d'utilisation, efficacité et réduction des coûts

Vous avez vu les avantages des K8, mais je vais maintenant vous montrer pourquoi n'importe quelle entreprise peut bénéficier de Kubernetes. Les entreprises ont besoin que leurs produits soient disponibles pour leurs clients rapidement et de manière fiable. Kubernetes aide à accomplir exactement cela. Il divise vos composants en microservices, qui peuvent être au centre de petites équipes. Les pièces sont ensuite intégrées ensemble via des API. De cette façon, chaque équipe a un objectif plus petit et accélère le processus de publication global.

Évolutivité améliorée

À l'époque moderne, où la charge de l'utilisateur change de manière dynamique, vous ne savez jamais quand les temps d'arrêt se produiront. Disons que vous avez une vente flash prévue un jour particulier. Ce jour-là, la disponibilité de votre application auprès des clients est un must. Kubernetes aide à mettre à l'échelle les pods, qui maintiennent la fonctionnalité. De plus, lorsque la vente est terminée, il réduit les pods, ce qui permet une réduction automatique des coûts.

Disponible pour les environnements multicloud

Le principal avantage de Kubernetes est qu'il aide les entreprises à déployer leurs applications sur divers environnements cloud publics et privés. Il vous permet d'utiliser des clouds hybrides, ce qui évite la dépendance vis-à-vis d'un fournisseur. Il permet également aux entreprises de migrer leurs charges de travail, leur offrant ainsi un retour sur investissement (ROI) maximal.

[ Apprenez les bases de l'utilisation de Kubernetes dans cet aide-mémoire gratuit. ] 

Récapitulez

Cet article unique ne peut pas couvrir tous les cas d'utilisation de Kubernetes, mais vous avez maintenant une idée de la façon dont K8 est né, de ce qu'il est et de ce qu'il peut faire pour vous.


Linux
  1. Linux Command Basics :7 commandes pour la gestion des processus

  2. 10 guides de conteneurs pour les administrateurs système

  3. Démystifier Ansible pour les administrateurs système Linux

  4. 5 astuces rsync avancées pour les administrateurs système Linux

  5. 3 conseils d'auto-évaluation solides pour les administrateurs système

VLAN pour les administrateurs système :les bases

Les cinq meilleurs plugins Vim pour les administrateurs système

Guide de démarrage rapide d'Ansible pour les administrateurs système Linux

Traefik pour les conteneurs Docker sur Ubuntu

30 exercices d'autorisations Linux pour les administrateurs système

40 commandes réseau Linux utiles pour les administrateurs système modernes