Modifier

Partager via


Choisir l’option Kubernetes bare-metal à la périphérie

Azure Kubernetes Service (AKS)

Si vous envisagez d’exécuter Kubernetes à la périphérie et que vous vous rendez compte que les solutions managées ne répondent pas tout à fait à vos besoins, vous pouvez étudier l’option du bare-metal. Ce document vous aide à trouver la meilleure option disponible pour votre cas d’usage lorsque vous configurez des clusters Kubernetes à la périphérie.

Notes

Cet article ne compare pas toutes les options de façon exhaustive. Il présente certaines possibilités pour vous aider à prendre des décisions en fonction des caractéristiques clés de chaque option.

Arbre de décision pour le Kubernetes bare-metal à la périphérie

Reportez-vous à l’arbre de décision suivant afin de choisir parmi les options Kubernetes bare-metal à la périphérie présentées ci-dessous.

Diagramme montrant un organigramme qui permet de déterminer quelles options de matériel nu utiliser.

Télécharger un fichier Visio de cet organigramme

  • MicroK8s : option Kubernetes conforme de type « Low Ops » par Canonical

  • K3S : distribution Kubernetes certifiée conçue pour l’IoT et le computing en périphérie

  • kubeadm : outil Kubernetes pour la création de clusters Kubernetes à partir de zéro. Adapté au calcul standard (Linux/Windows)

Notes

Low Ops fait référence au coût réduit des opérations lorsque certaines tâches opérationnelles sont supprimées ou simplifiées, comme les mises à jour automatiques ou les mises à niveau simplifiées.

MicroK8s par Canonical

MicroK8s est fourni sous la forme d’un package snap qui peut être facilement installé sur les machines Linux avec prise en charge Snap. D’autres installations sont disponibles pour Windows, macOS et raspberry PI/ARM. Une fois installé, MicroK8s crée un cluster mononœud qui peut être géré avec les outils MicroK8s. Il est fourni avec son propre kubectl, et certains modules complémentaires peuvent être activés (par exemple, helm, dns, ingress, metallb et plus). Les scénarios multinœuds, Windows et à haute disponibilité sont également pris en charge.

Considérations :

  • Les exigences applicables aux ressources dépendent de l’emplacement où vous souhaitez exécuter MicroK8s. Reportez-vous à la documentation produit pour connaître les exigences minimales qui s’appliquent aux ressources. Par exemple :

    • Ubuntu : 4 Go de RAM, 20 Go d’espace disque

    • Windows : 4 Go de RAM, 40 Go d’espace disque

  • Les charges de travail Windows sont prises en charge uniquement pour les clusters MicroK8s avec Calico CNI.

  • Chaque nœud présent dans un cluster multinœud MicroK8s nécessite son propre environnement, qu’il s’agisse d’une machine virtuelle ou d’un conteneur séparés sur un même ordinateur, ou d’un autre ordinateur faisant partie d’un même réseau.

  • Les difficultés peuvent commencer lorsque vous exécutez MicroK8s sur du matériel ARM. Reportez-vous à la documentation pour connaître les solutions possibles.

K3s par Rancher

K3s est une distribution légère de Kubernetes. K3s est déployé sous la forme d’un fichier binaire unique, et il est fourni avec des outils intégrés tels que kubectl et ctr, un peu comme MicroK8s.

Considérations :

  • La taille du fichier binaire est inférieure à 100 Mo, mais il peut y avoir quand même des ressources minimales requises en fonction de votre scénario. Reportez-vous à la documentation pour connaître les ressources minimales requises.

  • SQLite3 est le système de stockage par défaut, même si d’autres options sont prises en charge.

  • Les nœuds Windows ne sont actuellement pas pris en charge pour K3s.

  • La haute disponibilité peut être obtenue à l’aide d’une base de données externe ou d’une base de données incorporée. Depuis la version v1.19.5+k3s1, K3s prend entièrement en charge l’etcd incorporé.

Kubeadm

Kubeadm est une installation simple de Kubernetes effectuée à partir de zéro.

Considérations :

  • Nécessite 2 Gio (gibioctets) ou plus de mémoire vive (RAM) sur chaque ordinateur.

  • Nécessite au moins 2 processeurs sur le nœud de plan de contrôle.

  • Le nœud de plan de contrôle doit être une machine sur laquelle est exécuté un système d’exploitation Linux compatible deb/rpm.

  • La politique de support concernant les versions de Kubernetes et la différence de version s’applique à kubeadm et à Kubernetes en général. Lisez cette politique de support pour savoir quelles sont les versions de Kubernetes et de kubeadm prises en charge.

Gestion/Automatisation

Pour l’automatisation et la gestion du provisionnement de clusters bare-metal, il existe deux options : Ansible et Metal3.

Ansible offre un moyen simple de gérer des ressources distantes. Il est donc idéal pour gérer et joindre des nœuds distants à un cluster Kubernetes. Vous avez uniquement besoin du fichier binaire Ansible qui s’exécute sur une machine Linux, et de SSH pour les ordinateurs distants. Cette méthode fournit un mécanisme flexible permettant d’exécuter des scripts arbitraires sur des ordinateurs cibles, ce qui signifie que vous pouvez utiliser Ansible avec n’importe lequel des outils mentionnés ci-dessus.

Metal3 adopte une approche différente pour résoudre ce problème, en utilisant des concepts similaires à ceux de l’API Cluster. Vous devez instancier un cluster éphémère pour provisionner et gérer des clusters bare-metal à l’aide d’objets Kubernetes natifs. Au moment de la rédaction du présent article, Metal3 utilise kubeadm et ne prend donc pas en charge les distributions légères de Kubernetes.

Pour en savoir plus sur la gestion, au-delà du provisionnement des clusters, vous pouvez vous familiariser avec les clusters Azure Arc qui permettent de gérer les clusters dans Azure.

Étapes suivantes

Pour plus d’informations, consultez les articles suivants :