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, proporcionando alta seguridad, una superficie de ataque mínima y un rendimiento optimizado de los clústeres de Kubernetes.

Talos OS. Características principales

  • Minimiza la probabilidad de ataques: la ausencia de shell (intérprete de comandos), gestor de paquetes y otros componentes estándar de Linux reduce las amenazas de seguridad.
  • Infraestructura inmutable: basado 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 optimizado para un rendimiento máximo, no instalado sobre el sistema.
  • Gestión centrada en API: gestión completa a través de API sin necesidad de SSH ni ejecución de comandos en un 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 reversión automática en caso de errores.
  • Soporte de contenedores integrado: optimizado para ejecutar aplicaciones en contenedores.
  • Seguridad estricta: cumplimiento de las mejores prácticas de seguridad, incluyendo cifrado forzado y 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.
  • Alta resiliencia: diseñado para operar en entornos distribuidos y tolerantes a fallos.

Funcionalidades de implementación

ID Nombre del SO Alias Activo BM GPU VPS VDS Familia Grupo de SO CloudInit Disponible
268 Talos 1.9.5 - + + + - Talos Otros No ORDER

Importante: Carga temporal sin instalación

Al solicitar 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, se perderá el sistema y será necesario volver a solicitarlo.

Al solicitar un servidor con Talos OS, recibirá:

  • 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 posibilidad de configurar e instalar el sistema en el disco utilizando las herramientas de Talos.

Instalación de Talos OS en el servidor proporcionado

Después de 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 Consola nativa. 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. Agregue 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 derechos de administrador).

Después de la instalación, abra una nueva ventana de terminal y verifique la funcionalidad:

talosctl version

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

Generación de secretos:

talosctl gen secrets

Generación de configuración básica:

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

Reemplace [SERVER-IP] con la dirección IP real de su servidor.

Paso 3: Creación de un archivo de parche

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 discos disponibles

    talosctl -n [SERVER-IP] -e [SERVER-IP] get disks --insecure
    
    2. Determinar 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 (generalmente /dev/sda, /dev/vda o /dev/nvme0n1);
  • El nombre de su interfaz de red (generalmente 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

Reemplace [SERVER-IP] con 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: Aplicación del 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: Aplicación de la configuración al servidor

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

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

Paso 7: Espera de la finalización de la instalación

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

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

La consola debe 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 el mensaje [talos] machine is running and ready en la consola, luego ejecute:

talosctl --talosconfig ./talosconfig kubeconfig kubeconf

Este comando creará un archivo kubeconf, que se puede utilizar 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;
  • Después de una instalación exitosa, el sistema se guardará en el disco y no se perderá al reiniciar;
  • El nombre del host debe coincidir exactamente entre sus archivos de configuración y comandos.

Configuración y gestión

Después de instalar correctamente Talos OS en el disco, puede gestionar su servidor usando talosctl:

  1. Obtener el estado del nodo:
talosctl --talosconfig ./talosconfig dmesg
  1. Ver recursos del sistema:
talosctl --talosconfig ./talosconfig dashboard
  1. Listar 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 después de ejecutar el comando bootstrap. Para comenzar 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 agregar nodos adicionales al clúster:

  1. Para un nuevo nodo de plano de control:

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

  2. Para un nodo trabajador:

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

Nota

El 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

Después de crear el clúster, están disponibles varias herramientas para la gestión:

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

Actualización del sistema y supervisión

Actualización de Talos OS

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

  1. Verificar 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
    

Supervisión del sistema

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

  1. Herramientas integradas:

    talosctl --talosconfig ./talosconfig dashboard
    

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

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

Nota

Información detallada sobre configuraciones adicionales de Talos OS está disponible en la documentación de los desarrolladores.

Artículos útiles sobre el tema

Solicitar Talos OS usando API

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


Parte del contenido de esta página fue creado o traducido utilizando IA.

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