TALOS LINUX

thumbernail Cloud

Nous allons découvrir cette nouvelle façon de gérer des clusters kubernetes.

Talos Linux

Talos Linux - Qu'est-ce que c'est ?

Talos Linux est un CSOS.

Qu'est-ce qu'un CSOS

Un “container-specific host OS” est un système d'exploitation minimaliste explicitement conçu pour exécuter uniquement des conteneurs, avec tous les autres services et fonctionnalités désactivés, et avec des systèmes de fichiers en lecture seule

Points clés de Talos Linux

  • Conçu pour être atomique dans son déploiement et modulaire dans sa composition

    • Atomique : Talos est distribué sous forme d’une image immutable versionné et signé
    • Modulaire : composé d’éléments séparés communiquant via des interfaces gRPC
  • N’est basé sur aucune distro Linux du marché

    • Réécriture du userspace depuis PID 1
    • Talos exécute le kernel mais tout ce qui est en aval a été réécrit en Go
    • Pas de systemd, Pas de GNU, pas de SSH, pas de paquets
    • Le kernel lance machined : remplace l’init process. Conçu pour exécuter kubernetes
  • N’est pas conçu pour un usage individuel

    • Talos fonctionne en cluster de machines
    • Une application ne tourne pas sur une machine mais un cluster
    • Le cluster kubernetes est maintenu par Talos (c’est sa raison première)
  • La configuration d’une machine est définie par un seul fichier

    • Qui peut être le même pour l’ensemble des machines du cluster !
  • Sa conception permet une maintenance aisée et rapide

  • Très peu de composants

    • apid (grpc endpoint, gateway pour tous les composants, envoie tout à machined),
    • containerd (conteneur runtime simple robuste et portable),
    • machined (remplacement de init),
    • networkd (gère le réseau au niveau host),
    • kernel (le kernel est configuré suivant les recommandations du Kernel Self Protection Project),
    • trustd (exécute et opère un cluster kubernetes),
    • udevd (implémentation de eudev [fork Gentoo de udev] dans machined)
  • Tout le design de Talos Linux est orienté sécurité

    • Distribué, Immutabilité, Minimal(SquasFS=80MB), Éphémère, Déclaratif
  • Configuration/Pilotage du cluster par CLI unique

    • talosctl : Un seul outil de gestion (comme kubernetes)
  • Fonctionne sur tout type d’environnement (bare-metal, vm, cloud, container)

  • Kubespan : connexion de machine Talos sur différents réseaux Permet de concevoir des clusters hybrides (multi environnement DC/Edge/Cloud)

Quels usages pour Alter Way

  • Offre KaaS AW → Mutualisation client Smile
    • Management Facile,
    • Utilisation de matériel usagé
    • Dans une dynamique responsable (footprint réduit, refurbish…),
    • Innovation,
    • Disruptif,
    • Dans une continuité de la trajectoire kubernetes prise par AW
  • Une communication technique facile à initier

  • Offre Kubernetes Metal Dédié

  • Goodbye l’utilisation complexe de kubespray

Création d'un cluster

création cluster

UPGRADE KUBERNETES

talosctl upgrade-k8s --from 1.24.0 --to 1.25.0
checking for resource APIs to be deprecated in version 1.25.0
WARNING: found resources which are going to be deprecated/migrated in the version 1.25.0
RESOURCE                                  COUNT
endpointslices.v1beta1.discovery.k8s.io   2
events.v1beta1.events.k8s.io              154

discovered controlplane nodes ["10.0.0.4" "10.0.0.5" "10.0.0.6"]
discovered worker nodes ["10.0.0.7"]
updating "kube-apiserver" to version "1.25.0"
 > "10.0.0.4": starting update
…
````


## UPGRADE TALOS

```bash
talosctl upgrade --nodes 10.20.30.40 \
         --image ghcr.io/siderolabs/installer:v1.2.1
talosctl upgrade -e 192.168.205.16  -n 192.168.205.16  --image ghcr.io/siderolabs/installer:v1.2.1
WARNING: 192.168.205.16: server version 1.2.0 is older than client version 1.2.1

error performing upgrade: 1 error occurred:
    * 192.168.205.16: rpc error: code = Unknown desc = error validating etcd for upgrade: only 1 etcd member found. assuming this is not an HA setup and refusing to upgrade
—
error performing upgrade: 1 error occurred:
    * 192.168.205.16: rpc error: code = Unknown desc = error validating etcd for upgrade: etcd member count(2) is insufficient to maintain quorum if upgrade commences
—
NODE             ACK                        STARTED
192.168.205.16   Upgrade request received   2022-09-13 12:24:43.365894 +0200 CEST m=+0.522651585

Demo

demo

Découvrez les technologies d'alter way