Comment exécuter votre propre cluster Kubernetes avec des MicroK8

0
180

MicroK8s est une distribution Kubernetes légère à un seul paquet développée par Canonical, mieux connue pour le système d'exploitation Ubuntu. MicroK8s suit les versions en amont de Kubernetes et se concentre sur la fourniture d'une expérience d'installation et de gestion sans effort. Voici comment commencer à exécuter votre propre cluster.

Installation

MicroK8s est disponible sur Linux, Windows et macOS. Un programme d'installation graphique de Windows est proposé sur le site Web du projet. Les utilisateurs de macOS doivent utiliser Brew tandis que les utilisateurs de Linux sont servis par des snaps.

Suivez les étapes d'installation séparées de Snap s'il vous manque snapd sur votre système. Utilisez ensuite la commande d'installation instantanée pour ajouter des MicroK8 :

sudo snap install microk8s –classic

Cela installe la dernière version de MicroK8s. Vous pouvez sélectionner une version spécifique en utilisant le drapeau –channel :

sudo snap install microk8s –classic –channel=1.19/stable

Cela vous donnera une version de MicroK8s basée sur Kubernetes v1.19.

Publicité

L'installation peut prendre un certain temps car les services Kubernetes démarrent. L'exécution de microk8s status –wait-ready vous permet de vérifier la progression afin de savoir quand MicroK8s est prêt à être utilisé.

Interagir avec votre cluster

MicroK8s intègre sa propre version de l'outil en ligne de commande Kubectl. Utilisez microk8s kubectl pour interagir avec votre cluster, en ajoutant une commande kubectl standard :

sudo microk8s kubectl get all –all-namespaces

Cette commande affiche toutes les ressources de votre cluster.

< img src="/wp-content/uploads/8cf7e4344e10adeb0c8b169fc4efe188.gif" />

Créez ensuite un manifeste de base à déployer :

apiVersion : v1 kind : Pod métadonnées : nom : my-pod spec : conteneurs : – nom : nginx image : nginx:latest ports : – nom : http conteneurPort : 80 protocole : TCP

Appliquez le manifeste à votre cluster :

sudo microk8s kubectl apply -f ./manifest.yaml

MicroK8s créera un nouveau Pod exécutant le serveur Web NGINX. Il apparaîtra lorsque vous réexécuterez microk8s kubectl get all.

MicroK8s est compatible avec toutes les commandes Kubectl. Si vous souhaitez supprimer le préfixe microk8s, vous pouvez utiliser un “vrai” binaire kubectl à la place :

vue de configuration sudo microk8s kubectl –raw > $HOME/.kube/config

Cela exporte les informations de connexion MicroK8s dans votre fichier de configuration Kubernetes, permettant aux commandes kubectl simples d'atteindre votre cluster.

La plupart des commandes MicroK8s nécessitent un accès superutilisateur. Pour une utilisation à long terme, ajoutez votre compte utilisateur au groupe microk8s afin de ne pas avoir besoin d'utiliser sudo à chaque fois :

sudo usermod -aG microk8s $USER

Accès aux images Docker

Les MicroK8 ne peuvent pas accéder automatiquement à vos images Docker locales. Si vous souhaitez déployer une image que vous venez de créer, importez-la manuellement dans le registre MicroK8s en l'exportant en tant qu'archive tar.

docker save my-image:latest > my-image.tar microk8s ctr image import my-image.tar Advertisement

Maintenant, vos pods peuvent référencer l'image avec succès. Vous pouvez lister toutes les images connues dans le registre MicroK8s avec la commande microk8s ctr images ls.

Au-delà d'une simple utilisation sur votre machine locale, vous devez configurer un registre d'images Docker dédié pour contenir vos images. Poussez les images là-bas et accordez un accès pull MicroK8s afin qu'il puisse les récupérer à partir de votre stockage. Les étapes à suivre dépendent de la configuration de votre registre.

Activation du tableau de bord Kubernetes

Le tableau de bord Web Kubernetes est fourni avec MicroK8s mais est désactivé par défaut. Vous pouvez l'activer en activant son module complémentaire, puis en accédant à l'adresse IP du service de tableau de bord.

microk8s enable dashboard

Le démarrage du service peut prendre quelques instants. Exécutez microk8s kubectl get services –namespace kube-system et attendez que le service kubernetes-dashboard s'affiche. Notez son CLUSTER-IP et visitez son adresse dans votre navigateur. Le tableau de bord Kubernetes devrait apparaître, vous permettant d'interagir avec vos ressources à l'aide d'une interface graphique.

Utiliser plus d'addons

MicroK8s est livré avec plusieurs autres modules complémentaires facultatifs pour les cas d'utilisation courants. L'addon DNS ajoute la prise en charge du déploiement DNS, le stockage fournit une classe de stockage par défaut basée sur les répertoires hôtes et l'entrée propose un contrôleur d'entrée qui vous permet de créer des ressources de routage d'entrée.

Publicité

L'addon de registre est un service spécial qui déploie un registre Docker prêt à l'emploi sur localhost:32000. L'utilisation du registre fournit un espace de stockage privé vers lequel vous pouvez envoyer vos images avant de les utiliser dans vos pods Kubernetes. De même, l'addon istio lance un maillage Istio pour fournir des fonctions de découverte de services.

Une description exhaustive de ces addons est fournie dans la documentation MicroK8s. Vous pouvez afficher tous les modules complémentaires disponibles dans votre installation en exécutant microk8s enable sans aucun argument. Seule la fonctionnalité minimale de Kubernetes est active par défaut car MicroK8s se concentre sur la fourniture d'une expérience rationalisée.

Gestion de votre cluster

Toutes les fonctions de gestion de cluster sont fournies par la commande microk8s. L'état d'exécution de microk8s affiche un aperçu de votre cluster, y compris s'il est en cours d'exécution et la liste des modules complémentaires actifs.

Pour arrêter votre cluster, exécutez microk8s stop. Cela arrêtera tous les services, mettant tout hors ligne. Vous redémarrez le cluster avec la commande de démarrage microk8s. L'exécution de tous vos services peut prendre quelques instants.

Vous pouvez afficher les détails de votre connexion de cluster en exécutant la configuration microk8s. Celui-ci émet un fichier YAML compatible Kubectl, prêt à être utilisé avec d'autres outils.

L'exécution de la réinitialisation de microk8s réinitialisera votre cluster à son état post-installation initial. Il s'agit d'une opération destructrice qui prend du temps et qui détruira toutes vos ressources. Il facilite l'expérimentation en vous permettant de tout démonter, sans retirer le composant logiciel enfichable MicroK8s. Les volumes de stockage Kubernetes seront conservés par défaut ; vous pouvez également les supprimer en ajoutant l'indicateur –destroy-storage.

Clusters multi-nœuds

Bien que MicroK8s ait commencé comme un seul nœud projet, vous pouvez maintenant ajouter des nœuds secondaires à votre cluster. Des nœuds supplémentaires vous offrent une redondance, ainsi qu'une capacité de charge de travail accrue. Chaque nœud nécessite son propre environnement entièrement isolé – soit une machine physique distincte, une machine virtuelle ou un conteneur. Vous ne pouvez pas exécuter deux instances de travail MicroK8s dans le même environnement.

Publicité

Tout d'abord, exécutez microk8s add-node sur votre nœud d'origine. Celui-ci deviendra le maître de contrôle qui exécute le plan de contrôle Kubernetes.

microk8s add-node

La commande crée un enregistrement provisoire pour le nouveau nœud. Il produira une commande de jointure microk8s qui joindra le nœud au plan de contrôle. Le processus de connexion prendra quelques secondes. Le nœud doit pouvoir joindre votre maître via l'adresse réseau affichée.

Une fois le nœud ajouté, il sera éligible pour héberger vos pods. Vous pouvez afficher tous les nœuds disponibles en exécutant microk8s kubectl get nodes.

La suppression d'un nœud du cluster est un exercice d'inversion. Tout d'abord, exécutez microk8s leave sur le nœud cible. Ensuite, exécutez microk8s remove-node 10.108.0.1 sur le maître, en remplaçant l'adresse IP du nœud supprimé. Cela informera tous les autres nœuds de la suppression. Le nœud cible reviendra à une installation MicroK8s autonome régulière, devenant son propre maître.

Conclusion

MicroK8s est une distribution Kubernetes minimale qui est facilement autonome -hébergé sur votre propre matériel. Il est entièrement conforme à CNFC et est livré avec des modules complémentaires intégrés pour le tableau de bord officiel Kubernetes, le routage d'entrée et le maillage de service Istio. Ceux-ci vous aident à configurer rapidement votre propre cluster prêt pour la production, capable de correspondre aux offres Kubernetes gérées des fournisseurs de cloud public.

Publicité

MicroK8s prend en charge une gamme particulièrement large d'architectures matérielles et de déploiement. Il fonctionne sur les postes de travail des développeurs, dans les environnements de production hautement disponibles et sur le Raspberry Pi. Cette flexibilité vous permet d'utiliser exactement la même technologie dans le développement et la production, même jusqu'à l'implémentation de Kubernetes.

Comparé à des projets concurrents tels que Minikube, MicroK8s excelle dans l'exécution dans des environnements à ressources limitées avec des frais généraux minimes. Il bénéficie de sa propre conteneurisation, utilisant le format de package snap, il n'y a donc pas de VM lourde à exécuter. Cela vous laisse plus de capacité pour héberger vos charges de travail et d'autres outils de développement.

Alors que MicroK8s a commencé comme un projet centré sur les développeurs, ciblant les tests et le prototypage locaux, il est maintenant facturé comme un projet de production. distribution Kubernetes prête avec un record prouvé pour suivre de près les versions en amont. Les clusters peuvent être mis à niveau vers les nouvelles versions de Kubernetes à l'aide de la commande snap refresh microk8s.