Saltar a contenido

Talos OS

En este artículo

Información

Talos OS es un sistema operativo moderno desarrollado específicamente para ejecutar Kubernetes. Utiliza un sistema de archivos inmutable y una arquitectura de contenedores, lo que proporciona alta seguridad, una superficie de ataque mínima y un rendimiento optimizado para clústeres de Kubernetes.

Talos OS. Funcionalidades principales

  • Minimiza la posibilidad de ataques: la falta de shell (shell), gestor de paquetes y otros componentes estándar de Linux reduce las amenazas de seguridad.
  • Infraestructura inmutable: basada en el concepto de inmutabilidad, donde las actualizaciones se aplican de forma atómica en lugar de modificar el sistema existente.
  • Kubernetes integrado: Kubernetes integrado y optimizado para un máximo rendimiento, no instalado sobre el sistema operativo.
  • Gestión centrada en API: gestión completa a través de la API sin necesidad de SSH ni ejecución de comandos en una shell.
  • Alta automatización: configuración y recuperación automatizadas de los componentes del clúster sin intervención manual.
  • Actualizaciones simplificadas: actualización fiable del SO y de Kubernetes con rollback automático en caso de error.
  • Soporte nativo para contenedores: optimizado para la ejecución de aplicaciones contenedorizadas.
  • Seguridad estricta: cumplimiento de las mejores prácticas de seguridad, incluyendo el cifrado obligatorio y la verificación de firmas.
  • Uso eficiente de recursos: consumo mínimo de recursos del sistema para maximizar la asignación a las cargas de trabajo (workloads).
  • Alta resiliencia: diseñado para operar en entornos distribuidos y tolerantes a fallos.

Funcionalidades de implementación

ID OS Name Alias Active BM GPU VPS VDS Family OS Group CloudInit Avilible
268 Talos 1.9.5 - Yes + + + - Talos Others No ORDER

Atención: Carga temporal sin instalación

Al pedir un servidor con Talos OS, el sistema se carga inicialmente en la RAM y no se instala en el disco. Si el servidor se reinicia antes de completar el proceso de configuración e instalación, el sistema se perderá y será necesario realizar un nuevo pedido.

Al pedir un servidor con Talos OS, usted recibe:

  • Un servidor con Talos OS cargado temporalmente en modo de mantenimiento;
  • Acceso a la consola del servidor a través del panel de control;
  • La capacidad de configurar e instalar el sistema en el disco utilizando las herramientas de Talos.

Instalación de Talos OS en el servidor proporcionado

Tras recibir un servidor con Talos OS, debe ir al panel de gestión de servidores y APIInvapi vaya a la tarjeta del servidor y abra la Native Console. Verá el sistema en modo de mantenimiento (Maintenance) con una nota Ready: True a través de la consola del panel de control. Este es un estado temporal que requiere una configuración adicional para la instalación permanente:

Paso 1: Carga de la herramienta Talos CLI

Primero, instale la utilidad talosctl en su máquina local:

Para Linux/MacOS:

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

Para Windows:

  1. Cree una carpeta para talosctl (si aún no existe)
    mkdir -Force $env:USERPROFILE\.talos
    
  2. Descargue la última versión de talosctl para Windows
    Invoke-WebRequest -Uri "https://github.com/siderolabs/talos/releases/latest/download/talosctl-windows-amd64.exe" -OutFile "$env:USERPROFILE\.talos\talosctl.exe"
    
  3. Añada la ruta de talosctl a la variable de entorno PATH
    $path = [Environment]::GetEnvironmentVariable("Path", "User")
    if ($path -notlike "*$env:USERPROFILE\.talos*") {
        [Environment]::SetEnvironmentVariable("Path", "$path;$env:USERPROFILE\.talos", "User")
    }
    

Información

También puede instalar talosctl sin usar la línea de comandos:

  1. Descargue la última versión de talosctl para Windows directamente desde GitHub;
  2. Cambie el nombre del archivo descargado a talosctl.exe;
  3. Copie el archivo en la carpeta C:\Windows\System32\ (se requieren permisos de administrador).

Tras la instalación, abra una nueva ventana de terminal y compruebe su funcionamiento:

talosctl version

Paso 2: Preparación de los archivos de configuración

Generación de secretos:

talosctl gen secrets

Generación de la configuración básica:

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

Sustituya [SERVER-IP] por la dirección IP real de su servidor.

Paso 3: Creación de un archivo de parche (Patch File)

Los parámetros disk e interface en la configuración deben coincidir con el hardware de su servidor. Para determinar estos valores, ejecute los siguientes comandos:

  1. Determinar los discos disponibles

    talosctl -n [SERVER-IP] -e [SERVER-IP] get disks --insecure
    
    2. Determinar las interfaces de red

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

En la salida del comando, busque:

  • El nombre de su disco principal (normalmente /dev/sda, /dev/vda o /dev/nvme0n1);
  • El nombre de su interfaz de red (normalmente eth0, ens3, enp0s3, etc.).

Cree un archivo llamado patch.controlplane.yaml con el siguiente contenido:

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

Sustituya [SERVER-IP] por la dirección IP de su servidor en varios lugares del archivo.

Nota

Para trabajar con IPs estáticas, utilice el siguiente parche

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

Paso 4: Configuración del cliente Talos

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

Paso 5: Aplicar el parche a la configuración

Para Linux/macOS:

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

Para Windows (PowerShell):

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

Paso 6: Aplicar la configuración al servidor

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

Tras ejecutar este comando, comenzará el proceso de instalación en el servidor. Puede monitorizar este proceso a través de la consola del panel de control.

Paso 7: Esperar a que finalice la instalación

Espere hasta que el estado de la consola del servidor cambie:

  • Stage: Booting > Stage: Running;
  • Ready: True debe permanecer activo:

La consola debería mostrar un mensaje:

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

Paso 8: Inicialización del clúster

Después de que el servidor muestre un mensaje sobre la espera para unirse al clúster, ejecute:

talosctl --talosconfig ./talosconfig bootstrap

Paso 9: Obtención de la configuración de Kubernetes

Espere a que aparezca el mensaje [talos] machine is running and ready en la consola y luego ejecute:

talosctl --talosconfig ./talosconfig kubeconf

Este comando creará un archivo llamado kubeconf, que podrá utilizarse para gestionar el clúster de Kubernetes.

Notas importantes

  • Guarde los archivos secrets.yaml y talosconfig en un lugar seguro; son necesarios para el acceso futuro al clúster;
  • Tras una instalación exitosa, el sistema se guardará en el disco y no se perderá tras reiniciar;
  • El nombre de host debe coincidir exactamente entre sus archivos de configuración y los comandos.

Configuración y gestión

Tras instalar correctamente Talos OS en el disco, puede gestionar su servidor utilizando talosctl:

  1. Obtener el estado del nodo:
talosctl --talosconfig ./talosconfig dmesg
  1. Ver los recursos del sistema:
talosctl --talosconfig ./talosconfig dashboard
  1. Listar los servicios en ejecución:
talosctl --talosconfig ./talosconfig services
  1. Reiniciar el nodo:
talosctl --talosconfig ./talosconfig reboot

Creación de un clúster de Kubernetes

Su clúster de Kubernetes ya debería estar inicializado tras ejecutar el comando bootstrap. Para empezar a trabajar con él:

  1. Instale kubectl en su máquina local:

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

Para Windows:

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

  1. Configure el acceso al clúster:

para Linux/macOS:

export KUBECONFIG=./kubeconf
para Windows PowerShell:

$env:KUBECONFIG=".\kubeconf"
  1. Verifique la funcionalidad del clúster:
    .\kubectl get nodes
    

Creación de un clúster multinodo

Para añadir nodos adicionales al clúster:

  1. Para un nuevo nodo de plano de control (control plane):

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

  2. Para un nodo trabajador (worker node):

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

Nota

El proceso de Bootstrap se realiza solo una vez en el primer nodo. Los nodos adicionales se unirán automáticamente al clúster existente.

Interfaz de gestión del clúster

Tras crear el clúster, hay varias herramientas disponibles para la gestión:

  • talosctl: para gestionar los nodos de Talos OS;
  • kubectl: para gestionar los recursos de Kubernetes;
  • Paneles web: se pueden instalar paneles de control adicionales a través de Kubernetes.

Actualización y monitorización del sistema

Actualizar Talos OS

Talos OS admite actualizaciones atómicas sin tiempo de inactividad del clúster:

  1. Comprobar las versiones disponibles:

    talosctl --talosconfig ./talosconfig version --client
    

  2. Realizar la actualización del nodo:

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

Monitorización del sistema

Talos OS proporciona varios métodos de monitorización:

  1. Herramientas integradas:

    talosctl --talosconfig ./talosconfig dashboard
    

  2. Instalar soluciones de monitorización a través de Kubernetes:

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

Nota

La información detallada sobre configuraciones adicionales de Talos OS está disponible en la documentación para desarrolladores.

Artículos útiles sobre el tema

Pedir Talos OS mediante API

Para instalar este software utilizando la API, siga estas instrucciones.

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