GNU/Linux >> Tutoriels Linux >  >> Linux

Commencez à apprendre Kubernetes depuis votre machine locale

Des amis et des connaissances me contactent souvent pour savoir où et comment ils peuvent commencer à apprendre Kubernetes. Ces demandes proviennent d'un mélange de personnes Ops et Devs qui travaillent toujours avec des systèmes hérités tels que les applications VM et Monolith. Des termes tels que CI/CD et DevOps ne sont pour eux que des mots à la mode, car ils sont toujours occupés à alimenter et à alimenter les anciens systèmes qu'ils entretiennent dans le cadre de leurs tâches quotidiennes.

Ils montrent de l'intérêt maintenant qu'ils ont remarqué que de plus en plus de charges de travail sont migrées de VM vers des conteneurs, et que les applications monolithes sont ré-architecturées en microservices pour gérer facilement l'innovation et répondre aux demandes rapides du marché. Il est maintenant temps pour eux d'apprendre les outils, les plates-formes et les solutions à l'origine de cette migration massive vers Kubernetes.

Cela m'a encouragé à écrire cet article, pour aider mes amis et d'autres personnes qui souhaitaient commencer à apprendre Kubernetes à pousser leur propre voyage vers les conteneurs et le monde des applications cloud natives.

Avis de non-responsabilité :Apprendre Kubernetes va être un parcours cahoteux. Vous apprendrez de nouvelles terminologies et de nouvelles façons de gérer et de déployer votre application de manière native dans le cloud.

Qu'est-ce donc que Kubernetes ?

La première chose à faire lors de l'apprentissage de Kubernetes est de trouver une explication claire de ce que c'est. Il existe de nombreux livres et références YouTube que vous pouvez utiliser pour obtenir les explications les plus élémentaires. J'ai trouvé cette vidéo YouTube, The Illustrated Children's Guide to Kubernetes, que je pensais être la meilleure explication de ce qu'est Kubernetes. Jetez-y un coup d'œil avant de continuer à lire.

Les composants Kubernetes

Kubernetes n'est pas une machine unique mais plutôt une plateforme. Lorsque vous déployez Kubernetes, vous obtenez un cluster. Un cluster se compose d'un ensemble de machines maîtres et subordonnées, appelées nœuds, qui exécutent des applications conteneurisées. Chaque cluster a au moins un noeud worker. Ce sont les composants Kubernetes.

Vous trouverez ci-dessous à quoi ressemble Kubernetes avec tous les composants liés ensemble.

Comment démarrer ?

Lors de l'apprentissage de Kubernetes, vous devez déployer un cluster. Mais ce sera un défi pour les personnes qui ne sont pas en mesure de mettre la main sur le matériel supplémentaire et de trouver le temps de le configurer avec les ressources réseau et informatiques requises. Cette exigence fait souvent dérailler un voyage Kubernetes avant qu'il ne commence. Alors, quelle est la meilleure façon de commencer ?

Heureusement, il existe plusieurs projets open source qui vous permettent de déployer un cluster Kubernetes à partir de votre ordinateur portable. Jetons un coup d'œil à ces projets avant de donner mon avis sur la meilleure façon d'apprendre Kubernetes et de déployer votre première application cloud native.

Les projets Kubernetes locaux à la rescousse

Ce sont les projets locaux que vous pouvez utiliser pour explorer Kubernetes. Notez que ces projets ne sont pas prêts pour l'entreprise et ne sont censés être utilisés qu'à des fins d'apprentissage.

Remarque :Avant de commencer votre exploration de Kubernetes, assurez-vous que vous disposez des ressources adéquates sur votre ordinateur portable.

  • Linux :Red Hat Enterprise Linux, Fedora, CentOS
  • 16 Gio ou plus de RAM par machine (ce qui laisse moins de place pour vos applications).
  • 2 processeurs sur la machine que vous utilisez comme nœud de plan de contrôle.
  • Connectivité réseau complète entre toutes les machines du cluster

minikube

Minikube est parmi les plus faciles à installer parmi ces options. Il vous fournira un cluster à nœud unique s'exécutant sur VirtualBox ou KVM.

Besoins en ressources :

  • Processeur :2
  • Mémoire :2 Go
  • Espace disque :20 Go

Une fois que vous avez un cluster en cours d'exécution (nœud unique), vous pouvez commencer à vous familiariser en déployant une application simple à l'aide de la ligne de commande kubectl pour interagir avec votre cluster Kubernetes local. Le seul problème que j'ai remarqué lors de l'utilisation de minikube est la limitation de l'ajout d'un nœud de travail pour compléter l'expérience du cluster.

genre 

Kind vous oblige à exécuter Kubernetes dans un conteneur Docker. Les instructions d'installation aimables peuvent être trouvées ici.

Bien que le type soit facile à installer, le problème que je vois dans l'utilisation de ce projet est la configuration réseau complexe pour accéder au cluster. Pour quelqu'un qui commence tout juste à apprendre Kubernetes, cela pourrait être prohibitif.

Besoins en ressources :

  • Processeur :2
  • Mémoire :8 Go
  • Espace de stockage :20 Go

kubeadm

Le cluster spin-up utilisant kubeadm peut être utilisé pour déployer des applications cloud natives. Pour commencer, vous aurez un seul nœud maître et un nœud travailleur.

L'installation de kubeadm sur votre ordinateur portable est l'expérience la plus proche que vous pouvez obtenir pour un déploiement de cluster Kubernetes de niveau production. Pour cette raison, kubeadm est probablement le moyen le plus difficile d'apprendre Kubernetes.

Besoins en ressources :

  • Processeur :2
  • Mémoire :8 Go (vous aurez besoin de mémoire supplémentaire pour le déploiement de l'application).
  • Espace de stockage :20 Go

Minishift

Minishift est un projet basé sur OKD, l'amont derrière OpenShift. Lorsque vous installez Minishift, il vous fournira un cluster OpenShift à nœud unique s'exécutant à l'intérieur soit dans VirtualBox, soit dans KVM.

Besoins en ressources :

  • Processeur :2
  • Mémoire :4 Go
  • Espace de stockage :20 Go

Minishift est facile à installer et offre plus de flexibilité par rapport à d'autres projets, car vous pouvez l'installer sous Linux, Windows et macOS.

Étant donné que Minishift est basé sur OKD, vous apprendrez non seulement les bases de Kubernetes, mais également Openshift et certains des composants disponibles dans Minishift.

L'inconvénient de Minishift est qu'il ne prend en charge que OKD 3.11, vous ne pourrez donc pas profiter pleinement de la nouvelle version d'OKD 4. Minishift est remplacé par CodeReady Containers pour profiter pleinement d'OKD 4, comme décrit ici.

Conteneurs CodeReady (CRC) 

Le CRC est basé sur OKD 4.1, qui fournit une configuration à nœud unique sur votre ordinateur portable. Il fonctionne presque exactement comme Minishift et minikube. L'installation est également facile; la documentation peut être trouvée ici.

Besoins en ressources :

  • Processeur :4
  • Mémoire :8 Go
  • Espace de stockage :30 Go

[ Obtenez cet ebook gratuit :Gérer vos clusters Kubernetes pour les nuls. ]

Conclusions

Il existe de nombreuses façons de déployer Kubernetes localement pour commencer votre propre voyage vers la maîtrise des compétences importantes qui sont au centre de la révolution informatique actuelle.

Si vous débutez, je vous suggère d'apprendre Kubernetes en utilisant minikube car j'ai trouvé que c'est le plus simple pour les débutants. Une fois que vous êtes familiarisé avec le concept Kubernetes, la prochaine étape consiste à passer au CRC. Cela fera passer vos compétences Kubernetes au niveau supérieur afin que vous puissiez apprendre les composants prêts pour l'entreprise que la plupart des adaptateurs avancés utilisent déjà.

Comme mentionné précédemment, apprendre Kubernetes, c'est comme apprendre à nouveau les systèmes d'exploitation Linux. Ne vous découragez pas si vous rencontrez un barrage routier. Avoir une bonne maîtrise de cette technologie, c'est comme investir dans votre avenir et, d'une certaine manière, vous aide à vous préparer pour l'avenir.


Linux
  1. 9 choses à faire dans vos 10 premières minutes sur un serveur Linux

  2. Comment copier le dossier entier de l'instance Amazon EC2 Linux vers la machine Linux locale ?

  3. Arrêter la machine Windows à partir du terminal Linux

  4. Connexion à un VPN SonicWall à partir d'une machine Linux

  5. Prendre un vidage MySQL à partir d'une autre machine

Envoyez vos scans à une machine Linux sur votre réseau

Comment installer le cluster Kubernetes (k8s) sur RHEL 8

Composants principaux d'un cluster Kubernetes

Créer votre premier déploiement sur un cluster Kubernetes

Cluster Kubernetes utilisant K3S avec Multipass de Canonical

Utilisation de Grafana &Prometheus Kubernetes Cluster Monitoring