Skip to content

Files

talos

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Jan 14, 2025
Jan 14, 2025
Jan 14, 2025
Jan 14, 2025
Jan 14, 2025
Jan 14, 2025
Jan 14, 2025
Jan 14, 2025
Jan 14, 2025
Jan 14, 2025

Talos

Что такое Talos?

Talos Linux — это Linux, разработанный для Kubernetes: безопасный, неизменяемый и минималистичный.

  • Поддерживает облачные платформы, «голое железо» и платформы виртуализации
  • Все управление системой осуществляется через API. Нет SSH, оболочки или консоли
  • Готовность к работе: поддерживает одни из крупнейших Kubernetes-кластеров в мире
  • Проект с открытым исходным кодом от команды Sidero Labs

Почему Talos

Имея меньше, Talos предлагает больше: безопасность, эффективность, устойчивость, согласованность.

Все эти аспекты улучшаются благодаря простоте и минимализму.

Загрузка Talos на физический сервер с использованием ISO

Talos может быть установлен на физическую машину с использованием ISO-образа. ISO-образы для архитектур amd64 и arm64 доступны на странице релизов Talos.

Talos не устанавливается на диск при загрузке с ISO до тех пор, пока не будет применена конфигурация машины.

Пожалуйста, следуйте руководству по началу работы для выполнения общих шагов по установке Talos.

Примечание: Если на диске уже установлена Talos, при загрузке с ISO Talos загрузится с этой установленной версии. Порядок загрузки должен отдавать предпочтение диску перед ISO, либо ISO должно быть удалено после установки, чтобы Talos загружался с диска.

Ознакомьтесь со справочником по параметрам ядра для списка поддерживаемых Talos параметров ядра.

Доступны два типа ISO-образов:

  • metal-arch.iso: поддерживает загрузку на системах с BIOS и UEFI (для x86), только UEFI для arm64.
  • metal-arch-secureboot.iso: поддерживает загрузку только на системах с UEFI в режиме SecureBoot (создано с помощью Image Factory.

Начало работы

Руководство по настройке кластера Talos Linux.

Этот документ проведет вас через процесс установки простого кластера Talos, а также объяснит некоторые ключевые концепции.

Независимо от того, где вы запускаете Talos, этапы создания Kubernetes-кластера включают:

  1. Загрузка машин с образа Talos Linux.
  2. Определение конечной точки API Kubernetes и создание конфигурации машин.
  3. Настройка Talos Linux путем применения конфигураций машин.
  4. Настройка talosctl.
  5. Запуск Kubernetes.

Производственный кластер

Для высокодоступного Kubernetes-кластера в продакшене рекомендуется использовать три узла плоскости управления. Использование пяти узлов может обеспечить большую устойчивость к сбоям, но также приводит к большему количеству операций репликации и может отрицательно сказаться на производительности.

Layer 2 VIP (общий IP-адрес)

Talos имеет встроенную поддержку работы Kubernetes через общий/виртуальный IP-адрес. Для этого требуется соединение уровня 2 (Layer 2) между узлами управляющей плоскости.

Выберите неиспользуемый IP-адрес в той же подсети, что и узлы плоскости управления, для использования в качестве VIP. (Убедитесь, что выделенный адрес не используется другими устройствами и исключен из диапазона DHCP.)

Выделение секретов

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

talosctl gen secrets -o secrets.yaml

Запускаем Talos

Теперь мы можем создать общую конфигурацию машин:

talosctl gen config --kubernetes-version 1.31.4 --with-secrets secrets.yaml my-cluster https://172.16.61.10:6443 --config-patch @patch.yaml

Создаем конфигурацию для каждого узла:

talosctl machineconfig patch controlplane.yaml --patch @cp0.patch --output cp0.yaml
talosctl machineconfig patch controlplane.yaml --patch @cp1.patch --output cp1.yaml
talosctl machineconfig patch controlplane.yaml --patch @cp2.patch --output cp2.yaml
talosctl machineconfig patch worker.yaml --patch @worker0.patch --output worker0.yaml
talosctl machineconfig patch worker.yaml --patch @worker1.patch --output worker1.yaml
talosctl machineconfig patch worker.yaml --patch @worker2.patch --output worker2.yaml
talosctl apply-config --insecure -n 172.16.61.144 --file ./cp0.yaml
talosctl apply-config --insecure -n 172.16.61.145 --file ./cp1.yaml
talosctl apply-config --insecure -n 172.16.61.146 --file ./cp2.yaml
talosctl apply-config --insecure -n 172.16.61.147 --file ./worker0.yaml
talosctl apply-config --insecure -n 172.16.61.149 --file ./worker1.yaml
talosctl apply-config --insecure -n 172.16.61.148 --file ./worker2.yaml

После перезапуска Controls Plane узла необходимо инициализировать etcd:

talosctl bootstrap --nodes 172.16.61.11 --endpoints 172.16.61.11 --talosconfig=./talosconfig

Получаем kube config:

talosctl kubeconfig ~/.kube/config --nodes 172.16.61.10 --endpoints 172.16.61.10 --talosconfig ./talosconfig

Настройка Cilium

Добавляем репозиторий:

helm repo add cilium https://helm.cilium.io/
helm repo update

Устанавливаем Cilium:

helm upgrade \
    --install \
    cilium \
    cilium/cilium \
    --version 1.16.5 \
    --namespace kube-system \
    --values cilium/values.yaml

Metrics Server

Устанавливаем Metrics Server

helm upgrade \
  --namespace kube-system \
  --install metrics-server metrics-server/metrics-server \
  --set args={--kubelet-insecure-tls}

Поднимаем Traefik Kubernetes Ingress

helm upgrade \
  --install \
  --namespace traefik \
  --create-namespace \
  traefik traefik/traefik \
  --values traefik/values.yaml

Обновление кластера

talosctl --nodes 172.16.61.10 upgrade-k8s --to 1.32.0