Skip to content

Présentation

Talos Linux est un système d’opération OpenSource développé par Siderolabs.

Il est basé sur un kernel Linux, est a pour vocation unique de déployer et faire fonctionner des clusters Kubernetes.

Talos Linux étant une distribution spécifiquement orientée pour être un nœud Kubernetes, il a été fait le choix de créer une distribution la plus minimale et sécurisée possible.

Pour celà, les créateurs de Siderolabs ont appliqué plusieurs principes :

  • Minimalisme : La distribution Talos Linux ne contient que ce qui est nécessaire à son fonctionnement et au déploiement d’un nœud Kubernetes. Il n’y a aucun paquets superflux.
  • Immutabilité : Une fois installé, l’OS est quasi dans son intégralité en « read-only ». Il ne sera donc pas possible de modifier des fichiers sur la machine (binaires, librairies, …). Seules les données « fonctionnelles » seront modifiables.
  • Sécurité à la conception : Afin de sécuriser le plus possible le système d’opération, Talos est développé pour n’avoir, depuis l’ensemble des containers qui seront exécutés sur le système, que les accès minimaux à la couche système. Il ne sera également pas possible d’accéder à l’OS via une console ou en SSH. La seule méthode d’intéraction sont les API de Talos.

Sans rentrer dans les détails, il est nécessaire pour comprendre le fonctionnement et l’intérêt de Talos de dire quelques mots sur la partie configuration de ce système d’opération.

L’ensemble de la configuration machine de Talos (on entend par là l’installation et la configuration du système), mais également la configuration de la partie Kubernetes, se fait au travers de manifestes de configuration.
Ces manifestes sont appelés machine-config dans le jargon de Talos.

Ils comportent le nécessaire pour la configuration du système (configuration réseau, disques, chiffrements, fichiers supplémentaires, …), mais également la configuration interne du cluster Kubernetes (nom du cluster, CIDR, …)

Talos étant un système immuable, ces fichiers de configuration pourront être appliqués ou réappliqués sans problème aux nœuds constituant le cluster. Vous pourrez ainsi recréer les nœuds de vos clusters de façon idempotente.

Talos Linux au-delà d’être un système d’opération à part entière, embarque surtout l’ensemble de l’outillage nécessaire pour déployer un cluster Kubernetes.\

Il est donc nativement outillé pour suppléer à des outils tels que :

  • Rancher
  • Kubespray
  • Kubeadm

« L’avantage » de Talos en comparaison à ces outils est de rendre quasiment transparente la partie gestion du cluster Kubernetes.
En effet, la structuration initiale du cluster Kubernetes est traitée en même temps et par les mêmes manifestes de configuration que la partie « machine » de Talos. Vous n’aurez aucune actions supplémentaires à faire pour créer un cluster Kubernetes que d’appliquer le manifeste de configuration de Talos.

Talos Linux embarque également des routines de mise à jour qui permettent de faire les montées en version de Talos lui-même ou de Kubernetes très facilement.

Pour la partie Kubernetes, la montée en version d’un cluster déployé avec Talos se fait avec l’exécution d’une seule commande quelle que soit la taille du cluster.

Pour la partie Talos, il sera toutes fois nécessaire d’exécuter la commande de mise à jour nœud à nœud. Cette dernière permettra la mise à jour de tous les composants « système » de Talos (Kernel, librairies, binaires, …).