Aller au contenu

Talos OS

Dans cet article

Information

Talos OS est un système d'exploitation moderne spécifiquement développé pour exécuter Kubernetes. Il utilise un système de fichiers immuable et une architecture conteneurisée, offrant une sécurité élevée, une surface d'attaque minimale et des performances optimisées des clusters Kubernetes.

Talos OS. Fonctionnalités principales

  • Minimise les risques d'attaques : l'absence de shell, de gestionnaire de paquets et d'autres composants Linux standards réduit les menaces de sécurité.
  • Infrastructure immuable : basée sur le concept d'immutabilité où les mises à jour sont appliquées de manière atomique plutôt que de modifier le système existant.
  • Kubernetes intégré : Kubernetes intégré optimisé pour des performances maximales, non installé par-dessus le système.
  • Gestion centrée sur l'API : gestion complète via l'API sans avoir besoin de SSH ou d'exécuter des commandes dans un shell.
  • Haute automatisation : configuration et récupération automatisées des composants du cluster sans intervention manuelle.
  • Mises à jour simplifiées : mise à jour fiable du système d'exploitation et de Kubernetes avec retour arrière automatique en cas d'erreur.
  • Support intégré des conteneurs : optimisé pour l'exécution d'applications conteneurisées.
  • Sécurité stricte : conformité aux meilleures pratiques de sécurité, y compris le chiffrement imposé et la vérification des signatures.
  • Utilisation efficace des ressources : consommation minimale des ressources système pour maximiser l'allocation aux charges de travail.
  • Haute résilience : conçu pour fonctionner dans des environnements distribués et tolérants aux pannes.

Fonctionnalités de déploiement

ID Nom du système d'exploitation Alias Actif BM GPU VPS VDS Famille Groupe OS CloudInit Disponible
268 Talos 1.9.5 - Yes + + + - Talos Others No ORDER

Important : Chargement temporaire sans installation

Lors de la commande d'un serveur avec Talos OS, le système est initialement chargé en RAM et non installé sur le disque. Si le serveur est redémarré avant la fin du processus de configuration et d'installation, le système sera perdu et nécessitera une nouvelle commande.

Lors de la commande d'un serveur avec Talos OS, vous recevez :

  • Un serveur avec Talos OS chargé temporairement en mode maintenance ;
  • Un accès à la console du serveur via le panneau de contrôle ;
  • La possibilité de configurer et d'installer le système sur le disque à l'aide des outils Talos.

Installation de Talos OS sur le serveur fourni

Après avoir reçu un serveur avec Talos OS, vous devez aller au panneau de gestion des serveurs et de l'APIInvapi allez à la carte du serveur et ouvrez la Native Console. Vous verrez le système en mode Maintenance avec une note Ready: True via la console du panneau de contrôle. Il s'agit d'un état temporaire nécessitant une configuration ultérieure pour une installation permanente :

Étape 1 : Chargement de l'outil CLI Talos

Tout d'abord, installez l'utilitaire talosctl sur votre machine locale :

Pour Linux/MacOS :

curl -sL https://talos.dev/install | sh

Pour Windows :

  1. Créez un dossier pour talosctl (s'il n'existe pas déjà)
    mkdir -Force $env:USERPROFILE\.talos
    
  2. Téléchargez la dernière version de talosctl pour Windows
    Invoke-WebRequest -Uri "https://github.com/siderolabs/talos/releases/latest/download/talosctl-windows-amd64.exe" -OutFile "$env:USERPROFILE\.talos\talosctl.exe"
    
  3. Ajoutez le chemin de talosctl à la variable d'environnement PATH
    $path = [Environment]::GetEnvironmentVariable("Path", "User")
    if ($path -notlike "*$env:USERPROFILE\.talos*") {
        [Environment]::SetEnvironmentVariable("Path", "$path;$env:USERPROFILE\.talos", "User")
    }
    

Information

Vous pouvez également installer talosctl sans utiliser la ligne de commande :

  1. Téléchargez la dernière version de talosctl pour Windows directement depuis GitHub ;
  2. Renommez le fichier téléchargé en talosctl.exe ;
  3. Copiez le fichier dans le dossier C:\Windows\System32\ (droits d'administrateur requis).

Après l'installation, ouvrez une nouvelle fenêtre de terminal et vérifiez le fonctionnement :

talosctl version

Étape 2 : Préparation des fichiers de configuration

Génération des secrets :

talosctl gen secrets

Génération de la configuration de base :

talosctl gen config --with-secrets secrets.yaml node-talos https://[SERVER-IP]:6443

Remplacez [SERVER-IP] par l'adresse IP réelle de votre serveur.

Étape 3 : Création d'un fichier de correctif (patch)

Les paramètres disk et interface dans la configuration doivent correspondre au matériel de votre serveur. Pour déterminer ces valeurs, exécutez les commandes suivantes :

  1. Déterminer les disques disponibles

    talosctl -n [SERVER-IP] -e [SERVER-IP] get disks --insecure
    
    2. Déterminer les interfaces réseau

    talosctl -n [SERVER-IP] -e [SERVER-IP] get links --insecure
    

Dans la sortie de la commande, trouvez :

  • Le nom de votre disque principal (généralement /dev/sda, /dev/vda ou /dev/nvme0n1) ;
  • Le nom de votre interface réseau (généralement eth0, ens3, enp0s3, etc.).

Créez un fichier nommé patch.controlplane.yaml avec le contenu suivant :

cluster:
  apiServer:
    certSANs:
      - [SERVER-IP]
      - 127.0.0.1
      - localhost
      - kubernetes
      - kubernetes.default
      - kubernetes.default.svc
      - kubernetes.default.svc.cluster.local
machine:
  install:
    disk: /dev/sda
    image: factory.talos.dev/installer/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba:v1.9.5
    wipe: true
    extraKernelArgs:
      - talos.platform=metal
  features:
    hostDNS:
      enabled: false
      forwardKubeDNSToHost: false
  kubelet:
    clusterDNS:
      - [SERVER-IP]
  network:
    hostname: node-talos
    interfaces:
      - interface: eth0
        dhcp: true
    nameservers:
      - 8.8.8.8
      - 8.8.4.4
  time:
    disabled: false
    servers:
      - ntp.ix.com
    bootTimeout: 2m0s

Remplacez [SERVER-IP] par l'adresse IP de votre serveur à plusieurs endroits dans le fichier.

Remarque

Pour travailler avec des IP statiques, utilisez le correctif suivant

cluster:
  apiServer:
    certSANs:
      - 127.0.0.1
      - localhost
      - kubernetes
      - kubernetes.default
      - kubernetes.default.svc
      - kubernetes.default.svc.cluster.local
      - [SERVER-IP-ADDRESS]
machine:
  install:
    disk: /dev/sda
    image: factory.talos.dev/installer/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba:v1.9.5
    wipe: true
    extraKernelArgs:
      - talos.platform=metal
  features:
    hostDNS:
      enabled: false
      forwardKubeDNSToHost: false
  kubelet:
    clusterDNS:
      - [SERVER-IP-ADDRESS]
  network:
    hostname: node-talos
    interfaces:
      - interface: [INTERFACE NAME]
        addresses:
          - [YOUR SERVER'S IP]/[SUBNET MASK]
        mtu: 8765
        routes:
          - network: 0.0.0.0/0
            gateway: [YOUR SERVER's GATEWAY]
    nameservers:
      - 8.8.8.8
      - 8.8.4.4
  time:
    disabled: false
    servers:
      -  pool.ntp.org
    bootTimeout: 2m0s

Étape 4 : Configuration du client Talos

talosctl --talosconfig talosconfig config endpoint [SERVER-IP]
talosctl --talosconfig talosconfig config node [SERVER-IP]

Étape 5 : Application du correctif à la configuration

Pour Linux/macOS :

talosctl machineconfig patch controlplane.yaml --patch @patch.controlplane.yaml -o controlplane_patched.yaml

Pour Windows (PowerShell) :

talosctl machineconfig patch controlplane.yaml --patch "`@patch.controlplane.yaml" -o controlplane_patched.yaml

Étape 6 : Application de la configuration au serveur

talosctl --talosconfig ./talosconfig apply-config --insecure -n [SERVER-IP] -e [SERVER-IP] --file ./controlplane_patched.yaml

Après l'exécution de cette commande, le processus d'installation commencera sur le serveur. Vous pouvez surveiller ce processus via la console du panneau de contrôle.

Étape 7 : Attente de la fin de l'installation

Attendez que l'état de la console du serveur change :

  • Stage: Booting > Stage: Running ;
  • Ready: True doit rester actif :

La console doit afficher un message :

[talos] etcd is waiting to join the cluster. If this node is the first node in the cluster, please run 'talosctl bootstrap'

Étape 8 : Initialisation du cluster

Après que le serveur affiche un message indiquant qu'il attend de rejoindre le cluster, exécutez :

talosctl --talosconfig ./talosconfig bootstrap

Étape 9 : Obtention de la configuration Kubernetes

Attendez le message [talos] machine is running and ready dans la console, puis exécutez :

talosctl --talosconfig ./talosconfig kubeconfig kubeconf

Cette commande créera un fichier kubeconf, qui peut être utilisé pour gérer le cluster Kubernetes.

Notes importantes

  • Conservez les fichiers secrets.yaml et talosconfig dans un endroit sécurisé - ils sont nécessaires pour l'accès futur au cluster ;
  • Après une installation réussie, le système sera enregistré sur le disque et ne sera pas perdu lors d'un redémarrage ;
  • Le nom d'hôte doit correspondre exactement entre vos fichiers de configuration et vos commandes.

Configuration et gestion

Après avoir installé avec succès Talos OS sur le disque, vous pouvez gérer votre serveur à l'aide de talosctl :

  1. Obtenir l'état du nœud :
talosctl --talosconfig ./talosconfig dmesg
  1. Afficher les ressources système :
talosctl --talosconfig ./talosconfig dashboard
  1. Lister les services en cours d'exécution :
talosctl --talosconfig ./talosconfig services
  1. Redémarrer le nœud :
talosctl --talosconfig ./talosconfig reboot

Création d'un cluster Kubernetes

Votre cluster Kubernetes devrait déjà être initialisé après l'exécution de la commande bootstrap. Pour commencer à travailler avec :

  1. Installez kubectl sur votre machine locale :

Pour Linux :

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

Pour Windows :

curl.exe -LO "https://dl.k8s.io/release/v1.29.0/bin/windows/amd64/kubectl.exe"

  1. Configurer l'accès au cluster :

pour Linux/macOS :

export KUBECONFIG=./kubeconf
pour Windows PowerShell :

$env:KUBECONFIG=".\kubeconf"
  1. Vérifier le fonctionnement du cluster :
    .\kubectl get nodes
    

Création d'un cluster multi-nœuds

Pour ajouter des nœuds supplémentaires au cluster :

  1. Pour un nouveau nœud de plan de contrôle :

    talosctl apply-config --insecure --nodes <new-node-ip> --file controlplane.yaml
    

  2. Pour un nœud worker :

    talosctl apply-config --insecure --nodes <new-node-ip> --file worker.yaml
    

Remarque

Le bootstrap est effectué une seule fois sur le premier nœud. Les nœuds supplémentaires rejoindront automatiquement le cluster existant.

Interface de gestion du cluster

Après la création du cluster, divers outils sont disponibles pour la gestion :

  • talosctl : gestion des nœuds Talos OS ;
  • kubectl : gestion des ressources Kubernetes ;
  • Web panels : des panneaux de contrôle supplémentaires peuvent être installés via Kubernetes.

Mise à jour et surveillance du système

Mise à jour de Talos OS

Talos OS prend en charge les mises à jour atomiques sans interruption du cluster :

  1. Vérifier les versions disponibles :

    talosctl --talosconfig ./talosconfig version --client
    

  2. Effectuer la mise à jour du nœud :

    talosctl --talosconfig ./talosconfig upgrade --nodes <node-ip> --image ghcr.io/siderolabs/installer:v1.9.5
    

Surveillance du système

Talos OS fournit plusieurs méthodes de surveillance :

  1. Outils intégrés :

    talosctl --talosconfig ./talosconfig dashboard
    

  2. Installer des solutions de surveillance via Kubernetes :

    kubectl apply -f https://github.com/prometheus-operator/kube-prometheus/releases/download/v0.12.0/manifests.yaml
    

Remarque

Des informations détaillées sur les configurations supplémentaires de Talos OS sont disponibles dans la documentation des développeurs.

Articles utiles sur le sujet

Commander Talos OS via l'API

Pour installer ce logiciel via l'API, suivez ces instructions. ```