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 immutable (onveranderlijk) bestandssysteem en een containerarchitectuur, wat zorgt voor een hoge beveiliging, een minimaal aanvalsoppervlak en geoptimaliseerde prestaties voor Kubernetes-clusters.

Talos OS. Belangrijkste functies

  • Minimaliseert de kans op aanvallen: het ontbreken van een shell (shell), pakketbeheerder en andere standaard Linux-componenten vermindert beveiligingsrisico's.
  • Immutable infrastructuur: gebaseerd op het concept van onveranderlijkheid, waarbij updates atomair worden toegepast in plaats van het bestaande systeem te wijzigen.
  • Embedded Kubernetes: geïntegreerde Kubernetes geoptimaliseerd voor maximale prestaties, niet geïnstalleerd bovenop het systeem.
  • API-centrisch beheer: volledige beheersing via de API zonder dat SSH of het uitvoeren van commando's in een shell nodig is.
  • Hoge automatisering: automatische 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 de beste beveiligingspraktijken, inclusief verplichte encryptie en handtekeningverificatie.
  • Efficiënt resourcegebruik: minimaal verbruik van systeemresources 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
322 Talos 1.12.2 - Yes + + + - Talos Others No ORDER
329 Talos 1.14.2 - Yes + + + - Talos Others No ORDER

Let op: Tijdelijk laden zonder installatie

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

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

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

Talos OS installeren op de geleverde server

Nadat u een server met Talos OS heeft ontvangen, moet u naar het servers- en API-beheerpaneel gaan — Invapi ga naar de serverkaart en open de Native Console. U ziet het systeem in maintenance mode (Maintenance) met een Ready: True melding via de control panel console. Dit is een tijdelijke status die verdere configuratie vereist voor een permanente installatie:

Stap 1: Het Talos CLI-hulpprogramma laden

Installeer eerst de utility 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 PATH-omgevingsvariabele:
    $path = [Environment]::GetEnvironmentVariable("Path", "User")
    if ($path -notlike "*$env:USERPROFILE\.talos*") {
        [Environment]::SetEnvironmentVariable("Path", "$path;$env:USERPROFILE\.talos", "User")
    }
    

Installeer ook talosctl zonder de opdrachtregel te gebruiken:

 1. Download de nieuwste versie van talosctl voor Windows rechtstreeks van [GitHub](https://github.com/siderolabs/talos/releases/latest/download/talosctl-windows-amd64.exe);
 2. Hernoem het gedownloade bestand naar `talosctl.exe`;
 3. Kopieer het bestand naar de map `C:\Windows\System32\` (administratorrechten vereist).

Open na installatie een nieuw terminalvenster en controleer de functionaliteit:

talosctl version

Stap 2: Configuratiebestanden voorbereiden

Secrets genereren:

talosctl gen secrets

Basisconfiguratie genereren:

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

Vervang [SERVER-IP] door het werkelijke 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. Bepaal beschikbare schijven:

    talosctl -n [SERVER-IP] -e [SERVER-IP] get disks --insecure
    
    2. Bepaal netwerkinterfaces:

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

Zoek in de uitvoer van het commando 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 genaamd 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
      - 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] op verschillende plaatsen in het bestand door het IP-adres van uw server.

Opmerking

Gebruik de volgende patch om met statische IP-adressen te werken:

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 API]/[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: De Talos Client configureren

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

Stap 5: De patch toepassen op de 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: De configuratie toepassen op de 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 in het control panel.

Stap 7: Wachten tot de installatie is voltooid

Wacht tot de status in de console van de server verandert:

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

De console moet de volgende melding 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: Het cluster initialiseren

Nadat de server een melding geeft over het wachten om deel te nemen aan het cluster, voert u het volgende uit:

talosctl --talosconfig ./talosconfig bootstrap

Stap 9: De Kubernetes-configuratie verkrijgen

Wacht tot de melding [talos] machine is running and ready in de console verschijnt, en voer dan het volgende uit:

talosctl --talosconfig ./talosconfig kubeconfig kubeconf

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

Belangrijke opmerkingen

  • Sla de bestanden secrets.yaml en talosconfig op een veilige locatie op - ze zijn noodzakelijk voor toekomstige toegang tot het cluster;
  • Na een 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 de commando's.

Configuratie en beheer

Nadat u Talos OS succesvol op de schijf heeft geïnstalleerd, kunt u uw server beheren met talosctl:

  1. Status van de node ophalen:
talosctl --talosconfig ./talosconfig dmesg
  1. Systeemresources bekijken:
talosctl --talosconfig ./talosconfig dashboard
  1. Lopende services weergeven:
talosctl --talosconfig ./talosconfig services
  1. De node herstarten:
talosctl --talosconfig ./talosconfig reboot

Een Kubernetes-cluster maken

Uw Kubernetes-cluster zou al geïnitialiseerd moeten zijn na het uitvoeren van het bootstrap commando. Om ermee aan de slag te gaan:

  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 de 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. Aanvullende nodes zullen automatisch deelnemen aan het bestaande cluster.

Clusterbeheer-interface

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

  • talosctl: voor het beheren van Talos OS nodes;
  • kubectl: voor het beheren van Kubernetes-resources;
  • Web panels: aanvullende control panels kunnen via Kubernetes worden geïnstalleerd.

Systeemupdate en monitoring

Het bijwerken van Talos OS

Talos OS ondersteunt atomische updates zonder downtime van het cluster:

  1. Controleer beschikbare versies:

    talosctl --talosconfig ./talosconfig version --client
    

  2. Voer een node-update uit:

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

Systeemmonitoring

Talos OS biedt verschillende monitoringsmethoden:

  1. Ingebouwde tools:

    talosctl --talosconfig ./talosconfig dashboard
    

  2. Installeer monitoringsoplossingen via Kubernetes:

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

Opmerking

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

Nuttige artikelen over dit onderwerp

Talos OS bestellen via API

Volg deze instructies om deze software via de API te installeren.

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