Перейти к содержанию

Talos OS

В этой статье

Информация

Talos OS — это современная операционная система, специально разработанная для запуска Kubernetes. Talos OS использует неизменяемую файловую систему и контейнерную архитектуру, что обеспечивает высокую безопасность, минимальную поверхность атаки и оптимизированную работу кластеров Kubernetes.

Talos OS. Основные возможности

  • Минимизирует возможность атак: отсутствие оболочки (shell), пакетного менеджера и других стандартных компонентов Linux, что снижает угрозы безопасности.
  • Неизменяемая инфраструктура: система основана на концепции неизменяемости, где обновления применяются атомарно, а не путем модификации существующей системы.
  • Встроенный Kubernetes: интегрированный Kubernetes, оптимизированный для максимальной производительности, а не установленный поверх системы.
  • API-центричное управление: полное управление через API, без необходимости использования SSH или выполнения команд в оболочке.
  • Высокая автоматизация: автоматизированная настройка и восстановление компонентов кластера без ручного вмешательства.
  • Упрощенное обновление: надежное обновление ОС и Kubernetes с возможностью автоматического отката при ошибках.
  • Встроенная поддержка контейнеров: оптимизация для выполнения контейнеризированных приложений.
  • Строгая безопасность: соответствие лучшим практикам безопасности, включая принудительное шифрование и проверку подписей.
  • Эффективное использование ресурсов: минимальное потребление системных ресурсов для максимального выделения их рабочим нагрузкам.
  • Высокая устойчивость: разработана для работы в распределенных и отказоустойчивых средах.

Особенности предоставления Talos OS

Важно: Временная загрузка без установки

При заказе сервера с Talos OS, система изначально загружается в оперативную память и не установлена на диск. Если сервер будет перезагружен до завершения процесса конфигурации и установки, система будет потеряна и потребуется повторный заказ сервера.

При заказе сервера с Talos OS вы получаете:

  • Сервер с временно загруженной Talos OS в режиме обслуживания (Maintenance);
  • Доступ к консоли сервера через панель управления;
  • Возможность настроить и установить систему на диск с помощью инструментов Talos.

Установка Talos OS на предоставленный сервер

После получения сервера с Talos OS, необходимо в панели управления серверами и APIInvapi перейти в карточку сервера и открыть HTML5-консоль. Вы увидите систему в режиме обслуживания (Maintenance) с пометкой Ready: True через консоль в панели управления. Это временное состояние, требующее дальнейшей настройки для постоянной установки:

Шаг 1: Загрузка инструмента Talos CLI

Сначала установите утилиту talosctl на вашу локальную машину:

Для Linux/MacOS:

curl -sL https://talos.dev/install | sh
Для Windows:

  1. Создайте папку для talosctl (если она ещё не существует)
    mkdir -Force $env:USERPROFILE\.talos
    
  2. Скачайте последнюю версию talosctl для Windows
    Invoke-WebRequest -Uri "https://github.com/siderolabs/talos/releases/latest/download/talosctl-windows-amd64.exe" -OutFile "$env:USERPROFILE\.talos\talosctl.exe"
    
  3. Добавьте путь к talosctl в переменную среды PATH
    $path = [Environment]::GetEnvironmentVariable("Path", "User")
    if ($path -notlike "*$env:USERPROFILE\.talos*") {
        [Environment]::SetEnvironmentVariable("Path", "$path;$env:USERPROFILE\.talos", "User")
    }
    

Информация

Вы также можете установить talosctl без использования командной строки:

  1. Скачайте последнюю версию talosctl для Windows напрямую с GitHub;
  2. Переименуйте скачанный файл в talosctl.exe;
  3. Скопируйте файл в каталог C:\Windows\System32\ (потребуются права администратора).

После установки откройте новое окно терминала и проверьте работоспособность:

talosctl version

Шаг 2: Подготовка конфигурационных файлов

Генерация секретов:

talosctl gen secrets
Генерация базовой конфигурации:
talosctl gen config --with-secrets secrets.yaml node-talos https://[IP-АДРЕС-СЕРВЕРА]:6443
Замените [IP-АДРЕС-СЕРВЕРА] на реальный IP-адрес вашего сервера.

Шаг 3: Создание файла патча

Параметры disk и interface в конфигурации должны соответствовать реальному оборудованию вашего сервера. Для определения этих значений выполните следующие команды:

  1. Определение доступных дисков
    talosctl -n [IP-АДРЕС-СЕРВЕРА] -e [IP-АДРЕС-СЕРВЕРА] get disks --insecure
    
  2. Определение сетевых интерфейсов

    talosctl -n [IP-АДРЕС-СЕРВЕРА] -e [IP-АДРЕС-СЕРВЕРА] get links --insecure
    

В выводе команд найдите:

  • Название вашего основного диска (обычно /dev/sda, /dev/vda или /dev/nvme0n1);
  • Название вашего сетевого интерфейса (обычно eth0, ens3, enp0s3 и т. д.).

Создайте файл с именем patch.controlplane.yaml со следующим содержимым:

cluster:
  apiServer:
    certSANs:
      - [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:
      - [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.ru
    bootTimeout: 2m0s

Замените [IP-АДРЕС-СЕРВЕРА] на IP-адрес вашего сервера в нескольких местах в файле.

Шаг 4: Настройка клиента Talos

talosctl --talosconfig talosconfig config endpoint [IP-АДРЕС-СЕРВЕРА]
talosctl --talosconfig talosconfig config node [IP-АДРЕС-СЕРВЕРА]

Шаг 5: Применение патча к конфигурации

Для Linux/macOS:

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

Для Windows (PowerShell):

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

Шаг 6: Применение конфигурации к серверу

talosctl --talosconfig ./talosconfig apply-config --insecure -n [IP-АДРЕС-СЕРВЕРА] -e [IP-АДРЕС-СЕРВЕРА] --file ./controlplane_patched.yaml

После выполнения этой команды на сервере начнётся процесс установки. Вы можете наблюдать за этим процессом через консоль в панели управления.

Шаг 7: Ожидание завершения установки

Дождитесь, когда в консоли сервера изменится статус:

  • Stage: BootingStage: Running;
  • Ready: True должно оставаться активным:

В консоли должно появиться сообщение:

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

Шаг 8: Инициализация кластера

После того, как сервер покажет сообщение об ожидании присоединения к кластеру, выполните:

talosctl --talosconfig ./talosconfig bootstrap

Шаг 9: Получение конфигурации Kubernetes

Дождитесь сообщения [talos] machine is running and ready в консоли, затем выполните:

talosctl --talosconfig ./talosconfig kubeconfig kubeconf

Эта команда создаст файл kubeconf, который можно использовать для управления кластером Kubernetes.

Важные примечания

  • Сохраните файлы secrets.yaml и talosconfig в безопасном месте - они необходимы для будущего доступа к кластеру;
  • После успешной установки система будет сохранена на диске и не потеряется при перезагрузке;
  • Имя хоста должно точно совпадать между вашими конфигурационными файлами и командами.

Конфигурация и управление

После успешной установки Talos OS на диск, вы можете управлять вашим сервером с помощью talosctl:

  1. Получение статуса узла:

    talosctl --talosconfig ./talosconfig dmesg
    

  2. Просмотр системных ресурсов:

    talosctl --talosconfig ./talosconfig dashboard
    

  3. Получение списка запущенных сервисов:

    talosctl --talosconfig ./talosconfig services
    

  4. Перезагрузка узла:

    talosctl --talosconfig ./talosconfig reboot
    

Создание кластера Kubernetes

Ваш кластер Kubernetes должен быть уже инициализирован после выполнения команды bootstrap. Для начала работы с ним:

  1. Установите kubectl на вашей локальной машине:

Для 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/

Для Windows:

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

  1. Настройте доступ к кластеру:

    export KUBECONFIG=./kubeconf  # для Linux/macOS
    
    $env:KUBECONFIG=".\kubeconf"  # для Windows PowerShell
    

  2. Проверьте работоспособность кластера:

    .\kubectl get nodes
    

Создание многоузлового кластера

Для добавления дополнительных узлов в кластер:

  1. Для нового управляющего узла:

    talosctl apply-config --insecure --nodes <IP-адрес нового узла> --file controlplane.yaml
    

  2. Для рабочего узла:

    talosctl apply-config --insecure --nodes <IP-адрес нового узла> --file worker.yaml
    

Примечание

Bootstrap выполняется только один раз на первом узле. Дополнительные узлы автоматически присоединятся к существующему кластеру.

Интерфейс управления кластером

После создания кластера доступны различные инструменты для управления:

  • talosctl: управление узлами Talos OS;
  • kubectl: управление ресурсами Kubernetes;
  • Веб-панели: можно установить дополнительные панели управления через Kubernetes.

Обновление системы и мониторинг

Обновление Talos OS

Talos OS поддерживает атомарные обновления без простоя кластера:

  1. Проверьте доступные версии:

    talosctl --talosconfig ./talosconfig version --client
    

  2. Выполните обновление узла:

    talosctl --talosconfig ./talosconfig upgrade --nodes <IP-адрес узла> --image ghcr.io/siderolabs/installer:v1.9.5
    

Мониторинг системы

Talos OS предоставляет несколько способов мониторинга:

  1. Встроенные инструменты:

    talosctl --talosconfig ./talosconfig dashboard
    

  2. Установка мониторинговых решений через Kubernetes:

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

Примечание

Подробная информация по дополнительным настройкам Talos OS содержится в документации разработчиков.

Заказ Talos OS с помощью API

Для установки данного ПО с использованием API следуйте этой инструкции.