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, необходимо в панели управления серверами и API — Invapi перейти в карточку сервера и открыть HTML5-консоль. Вы увидите систему в режиме обслуживания (Maintenance
) с пометкой Ready: True
через консоль в панели управления. Это временное состояние, требующее дальнейшей настройки для постоянной установки:
Шаг 1: Загрузка инструмента Talos CLI¶
Сначала установите утилиту talosctl
на вашу локальную машину:
Для Linux/MacOS:
Для Windows:- Создайте папку для talosctl (если она ещё не существует)
- Скачайте последнюю версию talosctl для Windows
- Добавьте путь к talosctl в переменную среды PATH
Информация
Вы также можете установить talosctl без использования командной строки:
- Скачайте последнюю версию talosctl для Windows напрямую с GitHub;
- Переименуйте скачанный файл в
talosctl.exe
; - Скопируйте файл в каталог
C:\Windows\System32\
(потребуются права администратора).
После установки откройте новое окно терминала и проверьте работоспособность:
Шаг 2: Подготовка конфигурационных файлов¶
Генерация секретов:
Генерация базовой конфигурации: Замените[IP-АДРЕС-СЕРВЕРА]
на реальный IP-адрес вашего сервера. Шаг 3: Создание файла патча¶
Параметры disk
и interface
в конфигурации должны соответствовать реальному оборудованию вашего сервера. Для определения этих значений выполните следующие команды:
- Определение доступных дисков
-
Определение сетевых интерфейсов
В выводе команд найдите:
- Название вашего основного диска (обычно
/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¶
Шаг 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: Booting
→Stage: 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: Инициализация кластера¶
После того, как сервер покажет сообщение об ожидании присоединения к кластеру, выполните:
Шаг 9: Получение конфигурации Kubernetes¶
Дождитесь сообщения [talos] machine is running and ready
в консоли, затем выполните:
Эта команда создаст файл kubeconf
, который можно использовать для управления кластером Kubernetes.
Важные примечания
- Сохраните файлы
secrets.yaml
иtalosconfig
в безопасном месте - они необходимы для будущего доступа к кластеру; - После успешной установки система будет сохранена на диске и не потеряется при перезагрузке;
- Имя хоста должно точно совпадать между вашими конфигурационными файлами и командами.
Конфигурация и управление¶
После успешной установки Talos OS на диск, вы можете управлять вашим сервером с помощью talosctl
:
-
Получение статуса узла:
-
Просмотр системных ресурсов:
-
Получение списка запущенных сервисов:
-
Перезагрузка узла:
Создание кластера Kubernetes¶
Ваш кластер Kubernetes должен быть уже инициализирован после выполнения команды bootstrap
. Для начала работы с ним:
- Установите kubectl на вашей локальной машине:
Для Linux:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
Для Windows:
-
Настройте доступ к кластеру:
-
Проверьте работоспособность кластера:
Создание многоузлового кластера¶
Для добавления дополнительных узлов в кластер:
-
Для нового управляющего узла:
-
Для рабочего узла:
Примечание
Bootstrap выполняется только один раз на первом узле. Дополнительные узлы автоматически присоединятся к существующему кластеру.
Интерфейс управления кластером¶
После создания кластера доступны различные инструменты для управления:
- talosctl: управление узлами Talos OS;
- kubectl: управление ресурсами Kubernetes;
- Веб-панели: можно установить дополнительные панели управления через Kubernetes.
Обновление системы и мониторинг¶
Обновление Talos OS¶
Talos OS поддерживает атомарные обновления без простоя кластера:
-
Проверьте доступные версии:
-
Выполните обновление узла:
Мониторинг системы¶
Talos OS предоставляет несколько способов мониторинга:
-
Встроенные инструменты:
-
Установка мониторинговых решений через Kubernetes:
Примечание
Подробная информация по дополнительным настройкам Talos OS содержится в документации разработчиков.
Заказ Talos OS с помощью API¶
Для установки данного ПО с использованием API следуйте этой инструкции.