Ga naar inhoud

Talos OS

In dit artikel

Informatie

Talos OS is een modern besturingssysteem dat specifiek is ontwikkeld voor het draaien van Kubernetes. Het maakt gebruik van een immutabel bestandssysteem en containerarchitectuur, wat zorgt voor hoge beveiliging, een minimaal aanvalsoppervlak en geoptimaliseerde prestaties van Kubernetes-clusters.

Talos OS. Belangrijkste functies

  • Minimaliseert de kans op aanvallen: het ontbreken van een shell, pakketbeheerder en andere standaard Linux-componenten vermindert beveiligingsrisico's.
  • Immutable infrastructuur: gebaseerd op het concept van onveranderlijkheid waarbij updates atomaire worden toegepast in plaats van het bestaande systeem te wijzigen.
  • Ingebouwd Kubernetes: geïntegreerd Kubernetes dat is geoptimaliseerd voor maximale prestaties, niet geïnstalleerd bovenop het systeem.
  • API-gericht beheer: volledig beheer via de API zonder dat SSH of het uitvoeren van commando's in een shell nodig is.
  • Hoge automatisering: geautomatiseerde configuratie en herstel van clustercomponenten zonder handmatige tussenkomst.
  • Vereenvoudigde updates: betrouwbare OS- en Kubernetes-updates met automatische rollback bij fouten.
  • Ingebouwde containersupport: geoptimaliseerd voor het draaien van gecontaineriseerde applicaties.
  • Strikte beveiliging: naleving van beste beveiligingspraktijken, inclusief afdwingen van encryptie en handtekeningverificatie.
  • Efficiënt bronnenverbruik: minimaal verbruik van systeembronnen om de toewijzing aan workloads te maximaliseren.
  • Hoge veerkracht: ontworpen om te werken in gedistribueerde en fouttolerante omgevingen.

Implementatiefuncties

ID OS-naam Alias Actief BM GPU VPS VDS Familie OS-groep CloudInit Beschikbaar
268 Talos 1.9.5 - Ja + + + - Talos Overig Nee ORDER

Belangrijk: Tijdelijk laden zonder installatie

Bij het bestellen van een server met Talos OS wordt het systeem oorspronkelijk geladen in het RAM-geheugen en niet geïnstalleerd op de schijf. Als de server wordt herstart voordat het configuratie- en installatieproces is voltooid, gaat het systeem verloren en moet er opnieuw worden besteld.

Bij het bestellen van een server met Talos OS ontvangt u:

  • Een server met tijdelijk geladen Talos OS in onderhoudsmodus;
  • Toegang tot de serverconsole via het controlepaneel;
  • De mogelijkheid om het systeem te configureren en te installeren op de schijf met behulp van Talos-tools.

Talos OS installeren op de verstrekte server

Na ontvangst van een server met Talos OS moet u naar het paneel voor server- en API-beheer gaanInvapi ga naar de serverkaart en open de Native Console. U ziet het systeem in onderhoudsmodus (Maintenance) met een Ready: True-opmerking via de console van het controlepaneel. Dit is een tijdelijke toestand die verdere configuratie vereist voor permanente installatie:

Stap 1: Talos CLI-tool laden

Installeer eerst het hulpprogramma talosctl op uw lokale machine:

Voor Linux/MacOS:

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

Voor Windows:

  1. Maak een map aan voor talosctl (als deze nog niet bestaat)
    mkdir -Force $env:USERPROFILE\.talos
    
  2. Download de nieuwste versie van talosctl voor Windows
    Invoke-WebRequest -Uri "https://github.com/siderolabs/talos/releases/latest/download/talosctl-windows-amd64.exe" -OutFile "$env:USERPROFILE\.talos\talosctl.exe"
    
  3. Voeg het pad naar talosctl toe aan de omgevingsvariabele PATH
    $path = [Environment]::GetEnvironmentVariable("Path", "User")
    if ($path -notlike "*$env:USERPROFILE\.talos*") {
        [Environment]::SetEnvironmentVariable("Path", "$path;$env:USERPROFILE\.talos", "User")
    }
    

Informatie

U kunt talosctl ook installeren zonder de commandoregel te gebruiken:

  1. Download de nieuwste versie van talosctl voor Windows direct van GitHub;
  2. Hernoem het gedownloade bestand naar talosctl.exe;
  3. Kopieer het bestand naar de map C:\Windows\System32\ (beheerdersrechten vereist).

Na installatie opent u een nieuw terminalvenster en controleert u de functionaliteit:

talosctl version

Stap 2: Configuratiebestanden voorbereiden

Geheimen genereren:

talosctl gen secrets

Basisconfiguratie genereren:

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

Vervang [SERVER-IP] door het daadwerkelijke IP-adres van uw server.

Stap 3: Een patchbestand maken

De parameters disk en interface in de configuratie moeten overeenkomen met de hardware van uw server. Om deze waarden te bepalen, voert u de volgende commando's uit:

  1. Beschikbare schijven bepalen

    talosctl -n [SERVER-IP] -e [SERVER-IP] get disks --insecure
    
    2. Netwerkinterfaces bepalen

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

Zoek in de commando-uitvoer naar:

  • De naam van uw hoofdschijf (meestal /dev/sda, /dev/vda of /dev/nvme0n1);
  • De naam van uw netwerkinterface (meestal eth0, ens3, enp0s3 enzovoort).

Maak een bestand met de naam patch.controlplane.yaml met de volgende inhoud:

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

Vervang [SERVER-IP] door het IP-adres van uw server op verschillende plaatsen in het bestand.

Opmerking

Voor het werken met statische IP-adressen, gebruik de volgende patch

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

Stap 4: Talos-client configureren

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

Stap 5: Patch toepassen op configuratie

Voor Linux/macOS:

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

Voor Windows (PowerShell):

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

Stap 6: Configuratie toepassen op server

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

Na het uitvoeren van dit commando begint het installatieproces op de server. U kunt dit proces volgen via de console van het controlepaneel.

Stap 7: Wachten op voltooiing van de installatie

Wacht tot de consolestatus van de server verandert:

  • Stage: Booting > Stage: Running;
  • Ready: True moet actief blijven:

De console moet een bericht weergeven:

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

Stap 8: Cluster initialiseren

Nadat de server een bericht weergeeft over het wachten om toe te treden tot het cluster, voert u uit:

talosctl --talosconfig ./talosconfig bootstrap

Stap 9: Kubernetes-configuratie ophalen

Wacht op het bericht [talos] machine is running and ready in de console en voer vervolgens uit:

talosctl --talosconfig ./talosconfig kubeconfig kubeconf

Dit commando maakt een bestand kubeconf aan, dat kan worden gebruikt om het Kubernetes-cluster te beheren.

Belangrijke opmerkingen

  • Bewaar de bestanden secrets.yaml en talosconfig op een veilige locatie - deze zijn nodig voor toekomstige toegang tot het cluster;
  • Na succesvolle installatie wordt het systeem op de schijf opgeslagen en gaat het niet verloren bij een herstart;
  • De hostnaam moet exact overeenkomen tussen uw configuratiebestanden en commando's.

Configuratie en beheer

Na het succesvol installeren van Talos OS op de schijf, kunt u uw server beheren met behulp van talosctl:

  1. Nodestatus ophalen:
talosctl --talosconfig ./talosconfig dmesg
  1. Systeembronnen bekijken:
talosctl --talosconfig ./talosconfig dashboard
  1. Lijst van draaiende services:
talosctl --talosconfig ./talosconfig services
  1. De node herstarten:
talosctl --talosconfig ./talosconfig reboot

Een Kubernetes-cluster maken

Uw Kubernetes-cluster zou al geïnitieerd moeten zijn na het uitvoeren van het bootstrap-commando. Om ermee te beginnen:

  1. Installeer kubectl op uw lokale machine:

Voor 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/

Voor Windows:

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

  1. Configureer toegang tot het cluster:

voor Linux/macOS:

export KUBECONFIG=./kubeconf
voor Windows PowerShell:

$env:KUBECONFIG=".\kubeconf"
  1. Controleer de clusterfunctionaliteit:
    .\kubectl get nodes
    

Een multi-node cluster maken

Om extra nodes aan het cluster toe te voegen:

  1. Voor een nieuwe control plane-node:

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

  2. Voor een worker-node:

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

Opmerking

Bootstrap wordt slechts één keer uitgevoerd op de eerste node. Extra nodes sluiten zich automatisch aan bij het bestaande cluster.

Clusterbeheerinterface

Na het maken van het cluster zijn er verschillende tools beschikbaar voor beheer:

  • talosctl: beheer van Talos OS-nodes;
  • kubectl: beheer van Kubernetes-bronnen;
  • Webpanelen: extra controlepanelen kunnen worden geïnstalleerd via Kubernetes.

Systeemupdate en monitoring

Talos OS updaten

Talos OS ondersteunt atomaire updates zonder cluster downtime:

  1. Controleer beschikbare versies:

    talosctl --talosconfig ./talosconfig version --client
    

  2. Voer node-update uit:

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

Systeemmonitoring

Talos OS biedt verschillende monitoringmethoden:

  1. Ingebouwde tools:

    talosctl --talosconfig ./talosconfig dashboard
    

  2. Installeer monitoringoplossingen via Kubernetes:

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

Opmerking

Gedetailleerde informatie over extra Talos OS-configuraties is beschikbaar in de documentatie van de ontwikkelaars.

Nuttige artikelen over het onderwerp

Talos OS bestellen via API

Om deze software te installeren via de API, volgt u deze instructies.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×