Présentation

Talos Linux est une distribution Linux spéciale pour Kubernetes.

Elle est chargée en mémoire au lancement. N’a aucun utilisateur. Ni aucun accès SSH.

Tout se fait via une seule entrée : une API. Similaire au fonctionnement de Kubernetes.

Pré-requis pour une installation sur une machine physique

Il faut savoir :

La machine distante :

Sur votre machine locale (avec un système GNU/Linux) :

Par exemple sur ArchLinux, l’installation se fait ainsi :

pacman -Sy && pacman -S talosctl

Sur votre serveur DHCP (par exemple la Freebox) :

Premières étapes d’une installation sur une machine physique

Sur la machine distante :

Sur la machine locale :

talosctl gen config monServeur https://192.168.x.y:6443

192.168.x.y est à modifier avec l’adresse IP de votre serveur physique.

Ceci génère de la configuration dont nous allons nous servir.

Préparation de la configuration

Sur la machine locale, la commande précédente a généré 3 fichiers :

On va désormais agrémenter ces fichiers avec ce qu’on appelle des patchs. Ces patchs vont définir les modifications à faire en surcouche du fichier principal.

On créé un dossier, par exemple patches :

mkdir patches

À l’intérieur de ce dossier on ajoute des patchs. Par exemple pour définir que ce cluster est composé que d’une seule machine (appelé aussi single cluster node - 1 seul nœud avec un worker au même endroit).

On fait un fichier patches/allow-controlplane-workloads.yaml avec le contenu suivant :

---
cluster:
  allowSchedulingOnControlPlanes: true

Pour l’interface réseau, patches/dhcp.yaml :

---
machine:
  network:
    interfaces:
      - interface: eth0
        dhcp: true

eth0 est à remplacer avec le nom de votre carte réseau. A priori eth0 va fonctionner pour la plupart des machines n’ayant qu’une seule carte réseau - avec une prise ethernet.

Pour le disque, patches/install-disk.yaml :

---
machine:
    install:
        disk: /dev/nvme0n1

nvme0n1 est à remplacer avec le nom de votre disque, comme expliqué dans la section « Pré-requis » de la présente page.

Une fois ces éléments renseignés, on peut générer la configuration finale à l’aide de la commande suivante (à lancer dans un terminal sur la machine locale) :

talosctl gen config monServeur https://192.168.x.y:6443 \
  --with-secrets secrets.yaml \
  --config-patch @patches/allow-controlplane-workloads.yaml \
  --config-patch @patches/dhcp.yaml \
  --config-patch @patches/install-disk.yaml \
  --output rendered/

Remplacez monServeur et 192.168.x.y par vos données propres à votre serveur.

Les fichiers résultants se trouvent dans le dossier rendered.

Dans ce dossier se trouve un fichier nommé talosconfig que vous pouvez copier dans ~/.talos/config.

ATTENTION : NE PAS écraser le fichier ~/.talos/config existant (s’il y en a un).

Si ni le dossier .talos, ni le fichier ~/.talos/config n’existent, alors vous pouvez taper les commandes suivantes :

mkdir ~/.talos
cp rendered/talosconfig ~/.talos/config

Installation sur une machine physique

Déploiement

Une fois ces éléments créés, il suffit d’appliquer la configuration de la manière suivante (dans un terminal sur la machine locale) :

talosctl apply -f rendered/controlplane.yaml -n 192.168.x.y --insecure

192.168.x.y est à remplacer par l’adresse IP de votre machine physique (où nous installons Talos Linux).

Cela lancera l’installation des éléments sur Talos. On peut d’ailleurs le voir sur le Dashboard textuel de la machine distante.

Configuration de la commande talosctl

On doit désormais configurer la commande talosctl pour la suite. Tapez les commandes suivantes dans le terminal de votre machine locale :

talosctl config contexts # doit montrer notre cluster nommé 'monServeur'
talosctl config endpoint 192.168.x.y # renseigne le endpoint de 'monServeur'
talosctl config node 192.168.x.y # renseigne le nœud, ici pareil que 'monServeur'

192.168.x.y est l’adresse de votre serveur physique.

Installation de Kubernetes

Puis on installe Kubernetes en tapant les commandes dans le terminal de votre machine locale :

talosctl bootstrap

Et voilà, au bout de quelques minutes nous avons un serveur Kubernetes qui tourne !

Configuration d’accès à notre cluster via la commande kubectl

Il reste à ajouter la configuration du cluster Kubernetes à notre commande kubectl locale :

talosctl kubeconfig -n 192.168.x.y
kubectl get nodes # pour vérifier

192.168.x.y est l’adresse de votre serveur physique.

Upgrade (mise à jour) de Talos

Voici quelques éléments pour comprendre la mise à jour d’un serveur Talos Linux.

Il faut penser à mettre à jour progressivement :

Cf. La page de la documentation officielle concernant la gestion du cycle de vie de Talos Linux .

Donc on fait :

talosctl upgrade --nodes 192.168.x.y \
  --image ghcr.io/siderolabs/installer:v1.10.9

192.168.x.y est l’adresse de votre serveur physique.

Si, pour une raison ou pour une autre, l’état de votre serveur ne serait pas bon après cette mise à jour, vous pouvez revenir en arrière en lançant la commande suivante :

talosctl rollback

Commandes utiles

Liste des extensions

talosctl get extensions

Liens utiles