Simplifiez Kubernetes avec Talos

Apprenez à utiliser Kubernetes en toute simplicité avec Talos.

Traduit de Making Kubernetes Simple with Talos , auteur Ritesh.

Cette année, Kubernetes célèbre son dixième anniversaire avec la sortie de la v1.30.0, consolidant ainsi sa position de plateforme cloud de choix. Les clusters Kubernetes autogérés tels que EKS, GKS et AKS représentent 73 % du total des clusters, les 27 % restants étant autogérés, comme décrit par Dynatrace . La dernière décennie a été l’ère du cloud public, mais en raison de la hausse des coûts, certaines entreprises tentent de trouver un équilibre avec le cloud hybride. Selon VMware , environ 76 % des organisations utilisent désormais plusieurs Clouds, une combinaison de Clouds publics et privés. Kubernetes nous permet de créer des niveaux multi-cloud et cloud privé sur le matériel de notre choix, et ce, de manière rentable, sans nous engager dans un cloud spécifique.

Même si l'adoption de Kubernetes continue de croître, des préoccupations subsistent quant à la rentabilité, à la fiabilité et à la sécurité. La transition des machines virtuelles Kubernetes vers une infrastructure nue offre des avantages en termes de performances en éliminant la couche hyperviseur, en simplifiant les processus de dépannage et en maximisant la disponibilité des ressources pour les applications. Une configuration sans système d'exploitation donne aux organisations un contrôle total sur les composants matériels pour une optimisation personnalisée pour des charges de travail spécifiques. Avec les bonnes pratiques d’ingénierie et l’intégration de Kubernetes, les organisations peuvent atteindre la parité fonctionnelle avec les offres de cloud public. Historiquement, l'exécution de Kubernetes sur du bare metal a posé des défis en raison de la complexité opérationnelle, en particulier dans la gestion du cycle de vie du cluster. Cependant, ces obstacles ont été surmontés avec l'introduction de Talos , que nous explorerons plus en détail dans cet article.

Talos est un système d'exploitation très simplifié écrit en Golang. Talos est conçu comme un système d'exploitation spécifique au système d'exploitation pour la maintenance des clusters Kubernetes. Pour rendre l'infrastructure Kubernetes plus fiable, nous devons nous assurer que chaque nœud exécute la même version du système d'exploitation. Talos peut nous aider à maintenir la fiabilité et la cohérence de notre infrastructure Kubernetes en ajoutant la philosophie immuable sur laquelle repose Talos.

Talos s'exécute toujours en tant qu'image SquashFS, qui est un système de fichiers en lecture seule sous Linux. La taille totale de l’image Talos SquashFS est d’environ 80 Mo. Talos omet intentionnellement des composants tels que systemd, les utilitaires GNU, les packages de console, les binaires bash ou SSH pour minimiser la surface d'attaque et réduire la possibilité de failles de sécurité. Au lieu de cela, il s'appuie sur une API moderne pour gérer les opérations du système.

Talos contient uniquement ce dont vous avez besoin. Au lieu de cela, tout est géré par une API moderne. Talos est très concentré sur l'idée d'infrastructure immuable.

Qu’est-ce qu’une infrastructure immuable ?

Infrastructure immuable Une fois qu'un système est déployé, vous ne pouvez y apporter aucune modification ; ce concept est appelé infrastructure immuable. Si un changement est nécessaire dans une infrastructure immuable, une nouvelle infrastructure est créée avec les modifications requises au lieu de modifier l'infrastructure existante. Avoir une infrastructure immuable rend les environnements de transfert, de transfert et de production plus cohérents. Le maintien de la cohérence entre les nœuds est primordial sur l’infrastructure bare metal k8s. Dans ce type d'infrastructure, nos applications sont étroitement couplées au système d'exploitation, ce qui constitue l'inconvénient des systèmes immuables.

Avantages de l'utilisation de Talos

  1. Talos maintient la cohérence sur l'ensemble du système et évite toute modification de configuration. Talos appelle cela la « prévisibilité ».
  2. Talos vise à rendre l'infrastructure Kubernetes totalement immuable, améliorant ainsi la fiabilité, la sécurité et la cohérence. Cela rend Talos idéal pour les serveurs nus exécutant Kubernetes.
  3. Talos est conçu pour être immuable, il fonctionne donc sur la RAM et non sur le disque. Talos étant une image SquashFS, elle comporte moins de points d’écriture, qui sont de nature éphémère.
  4. Talos est hautement sécurisé.
  5. Talos est un système d'exploitation très léger avec environ 12 binaires, tous utilisés pour exécuter Kubernetes.
  6. Talos est piloté par API.
  7. Talos suit les recommandations données par KSPP (Kernel Self-Protection Project) - Documentation KSPP

Exemple

Talos est idéal pour l'autogestion des clusters Kubernetes, mais des plates-formes telles que CIVO prennent en charge le déploiement de clusters Kubernetes à l'aide de Talos. Voici quelques cas d’utilisation pour exécuter Kubernetes avec Talos.

1. Applications périphériques :

Pour gérer des clusters à grande échelle de périphériques Edge, Kubernetes est l'une des meilleures options car il est non seulement conçu pour l'orchestration de conteneurs, mais gère également efficacement les périphériques Edge. Pour garantir la fiabilité et la sécurité des applications Edge, disposez d'un Kubernetes sécurisé et fiable.

2. Kuberntes sur bare metal :

L'utilisation de Kubernetes sur du bare metal supprime les abstractions inutiles et donne à nos applications un contrôle total sur le matériel. Talos est un excellent choix pour déployer Kubernetes sur des serveurs nus. Il élimine la configuration et le dépannage inutiles et facilite le déploiement de Kubernetes sur du bare metal.

3. Charges de travail d’IA et d’apprentissage automatique :

Kubernetes s'avère être une plate-forme idéale pour tester et former de nouveaux modèles d'apprentissage automatique, permettant un déploiement transparent dans des environnements à plus grande échelle. Le maintien de la cohérence du déploiement est essentiel pour garantir un déploiement de modèle sûr et stable. Talos joue un rôle clé dans ce processus en fournissant un environnement cohérent qui permet une mise à l'échelle fiable du modèle en fonction de la demande.

architecture et conception

L'architecture Talos se compose de nombreux composants différents avec des interfaces gRPC définies. La communication entre tous les composants Talos s'effectue via gRPC.

Partition du système de fichiers Talos

  • EFI : stocke les données de démarrage EFI.
  • BIOS : utilisé pour le démarrage de deuxième étape de GRUB.
  • Boot : utilisé pour le chargeur de démarrage, stocke les initramfs et les données du noyau.
  • Meta : stocke les métadonnées sur les nœuds Talos.
  • État : stocke la configuration de la machine.
  • Éphémère : monté sur /var, utilisé pour stocker des données temporaires.

Le système de fichiers de Talos comporte 3 couches :

  1. rootfs : il s'agit de la couche principale squashfs en lecture seule. Montez ensuite Squashfs en mémoire en tant que périphérique en boucle.
  2. tmpfs : ce système de fichiers est utilisé pour les besoins spécifiques à l'exécution.
  3. système : requis pour les opérations internes.

Par exemple, Talos écrira dans /system/etc/hosts puis le liera à /etc/hosts. Talos ne rend pas /etc accessible en écriture, mais uniquement des parties spécifiques de /etc. /system est complètement recréé à chaque démarrage. Afin d'assurer la persistance au démarrage, Talos crée un système de fichiers superposé. Kubernetes possède /var. Ce répertoire est utilisé par etcd pour écrire des données. Nous avons ajouté l'option "--preserve" pour éviter de supprimer ces données lors de la mise à niveau, elles ne seront supprimées que lorsque la machine sera mise à niveau ou réinitialisée.

Composants

talosctlest un outil CLI pour interagir avec tous les composants de Talos. Semblable à kubectlla façon dont nous utilisons kube-api talosctlpour interagir avec apid.

  • apid : Talos est piloté par API et apidest chargé de fournir des points de terminaison gRPC pour interagir avec différents composants. apidPrésent sur chaque nœud, y compris le plan de contrôle.

Architecture Talos

  • usiné : il est responsable du traitement des requêtes API d'apid et de la gestion des ressources et des contrôles.
  • trustd : Il s'agit d'un processus démon utilisé pour établir la confiance dans le système. Il est utilisé pour établir la confiance entre les nœuds.
  • udevd : Il est utilisé pour configurer les liens nécessaires dans /dev.

Contrôleurs et ressources

  • Ressources : Elles sont similaires aux ressources de Kubernetes, les ressources sont de différents types et contiennent des métadonnées telles que l'espace de noms, le type, etc. Une ressource est identifiée de manière unique par son espace de noms. La ressource « Configuration de la machine » reflète la configuration actuelle de la machine.
  • Contrôleur : Dans Talos, les contrôleurs s'exécutent en tant que threads. Un contrôleur peut gérer plusieurs types de ressources, et chaque type de ressource peut avoir plusieurs ressources. Pour éviter les conflits, un seul contrôleur est responsable de la gestion d'un type de ressource spécifique dans l'espace de noms. Talos stocke les types de ressources définis pour le contrôleur dans le méta-espace de noms.

Démo

Dans cet article, nous utiliserons Docker pour démontrer cette fonctionnalité puisque le bare metal n'est pas encore disponible. Abonnez-vous à notre blog car nous prévoyons d'expliquer comment exécuter Talos sur du bare metal dans un prochain article. Nous apprendrons comment créer un cluster Kubernetes à l'aide de Docker.

Configurer les clusters Docker et Talos

conditions préalables

Avant de continuer, assurez-vous que les logiciels suivants sont installés :

Remarque : Les versions des images ISO du système d'exploitation talosctl et Talos doivent être les mêmes. Pour plus d’informations, veuillez consulter les informations de version.

Mac:

brew install siderolabs/tap/talosctl

Linux:

wget https://github.com/siderolabs/talos/releases/download/v1.7.0/talosctl-linux-amd64
chmod +x talosctl-linux-amd64
./talosctl-linux-amd64
sudo mv ./talosctl-linux-amd64 /usr/local/bin

Installez un cluster à trois nœuds à l'aide de docker et talosctl. La commande suivante créera un cluster à 3 nœuds (plan de contrôle, worknode-1, worknode-2).

talosctl cluster create --workers 2

Vérifions le nombre de nœuds créés et les informations du système d'exploitation

kubectl get nodes -o wide
kubectl get node talos-default-worker-1 -o json | jq -r '.status.nodeInfo.osImage'

Nettoyons et supprimons le cluster

en conclusion

Talos joue un rôle essentiel dans la gestion des environnements Kubernetes. Sa simplicité simplifie grandement la configuration des clusters Kubernetes. La philosophie immuable de Talos améliore considérablement la sécurité et la cohérence de l'infrastructure.

Questions fréquemment posées

Talos et k3

Il n’y a pas de comparaison directe entre Talos et k3. Cependant, lorsque l'on envisage de déployer un cluster Kubernetes, k3s nécessite un système d'exploitation et comporte d'autres dépendances qui varient en fonction du système d'exploitation sous-jacent. Talos se concentre sur l'exécution de clusters Kubernetes en utilisant sa philosophie immuable pour maintenir sa sécurité et sa fiabilité. Talos facilite le déploiement de Kubernetes.

Quels binaires Talos inclut-il ?

  • Les binaires de Talos initsont responsables de l’exécution du kubelet et du runtime du conteneur.
  • Containerd est le moteur d'exécution de Talos, avec runc.
  • Modprobe est utilisé pour charger des modules pour certains binaires. Des modules peuvent être ajoutés à Talos, ou nous pouvons utiliser des modules prédéfinis d' Image Factory .
  • Pour la gestion des volumes, utilisez lvm.
  • udevd est utilisé pour collecter les messages du noyau et les transmettre à d'autres systèmes.
  • Des binaires tels que xfs_repair sont utilisés pour réparer les systèmes de fichiers XFS.

Est-ce que Talos est gratuit ?

Talos est un système d'exploitation gratuit et open source couvert par la licence publique Mozilla version 2.0, qui permet une utilisation commerciale. Voir plus d'informations dans le référentiel Talos Github .

Pourquoi utiliser Talos ?

Talos rend les environnements Kubernetes plus sécurisés et plus fiables. Comme nous le savons tous, Talos convient aux systèmes distribués tels que Kubernetes. Si vous souhaitez que votre environnement Kubernetes soit plus sécurisé et fiable, vous devez utiliser Talos.

Pouvons-nous exécuter Talos sur du bare metal ?

Talos est idéal si vous souhaitez configurer Kubernetes sur du bare metal. Restez à l'écoute pour savoir comment déployer Talos sur du bare metal, abonnez-vous à nos publications ou contactez-nous directement pour en discuter davantage.

Qui fournit un support supplémentaire pour Talos ?

Cet article a été publié pour la première fois sur Yunyunzhongsheng ( https://yylives.cc/ ), tout le monde est invité à le visiter.

RustDesk suspend ses services nationaux en raison d'une fraude généralisée Apple lance la puce M4 Taobao (taobao.com) redémarre le travail d'optimisation de la version Web Les lycéens créent leur propre langage de programmation open source comme cadeau de passage à l'âge adulte - Commentaires critiques des internautes : S'appuyer sur le défense Yunfeng a démissionné d'Alibaba et prévoit de produire à l'avenir La destination pour les programmeurs de jeux indépendants . Visual Studio Code 1.89 publie Java 17. C'est la version Java LTS la plus couramment utilisée. Windows 10 a une part de marché de 70. %, et Windows 11 continue de décliner | Google soutient Hongmeng pour prendre le relais ; l'open source Rabbit R1 prend en charge l'anxiété et les ambitions de Microsoft ;
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/6919515/blog/11105497
conseillé
Classement