Talos Linux для bare metal Kubernetes: immutable OS для enterprise кластеров — АйТи Фреш
· 13 мин чтения

Talos Linux для bare metal Kubernetes: immutable OS для enterprise кластеров

Talos Linux для bare metal Kubernetes: immutable OS для enterprise кластеров

Привет! Я Евгений Семёнов, директор ITFresh. Хочу поделиться нашим опытом работы с Talos Linux — immutable операционной системой, которую делали специально под Kubernetes. К 2026 году мы всё отчётливее видим: рынок разворачивается в сторону bare metal развёртываний и уходит от cloud. Talos здесь попадает точно в цель. Zero-trust security, API-driven management, automatic updates — всё это из коробки. Расскажу про наш production-деплой Talos-кластера на 12 серверах Dell. Без воды, только то, с чем столкнулись сами.

Почему Talos Linux для Kubernetes в 2026

Чем Talos Linux отличается от обычных дистрибутивов? Это специализированная immutable ОС, собранная исключительно под Kubernetes. Никакого лишнего софта, никакого SSH по умолчанию, минимальная поверхность атаки. Управление — только через API. На нашей практике это сильно сократило количество инцидентов, связанных с ручными правками на узлах.

Установка Talos на bare metal серверы

# 1. Скачать talosctl CLI
curl -sL https://talos.dev/install | sh

# 2. Генерация конфигурации кластера
talosctl gen config my-cluster https://k8s.company.local:6443
# Создает: controlplane.yaml, worker.yaml, talosconfig

# 3. Настройка для bare metal
# controlplane.yaml
machine:
  type: controlplane
  network:
    hostname: cp-1.k8s.local
    interfaces:
      - interface: eth0
        dhcp: false
        addresses:
          - 10.0.1.10/24
        routes:
          - network: 0.0.0.0/0
            gateway: 10.0.1.1
    nameservers:
      - 8.8.8.8
      - 1.1.1.1

cluster:
  controlPlane:
    endpoint: https://10.0.1.100:6443
  network:
    cni:
      name: none  # Будем ставить Cilium отдельно
    podSubnets:
      - 10.244.0.0/16
    serviceSubnets:
      - 10.96.0.0/12

Bootstrap Talos кластера

# 1. Apply конфигурации на серверы
talosctl apply-config --insecure   --nodes 10.0.1.10   --file controlplane.yaml

talosctl apply-config --insecure   --nodes 10.0.1.11,10.0.1.12   --file worker.yaml

# 2. Bootstrap первого control plane
talosctl bootstrap --nodes 10.0.1.10

# 3. Получить kubeconfig
talosctl kubeconfig --nodes 10.0.1.10

# 4. Проверка кластера
kubectl get nodes
kubectl get pods -A

Production конфигурация Talos

Для production bare metal кластера мы использовали enterprise-настройки. Не дефолт, не «поставили и забыли» — каждый параметр выверяли под реальную нагрузку. Ниже конфигурация, которую применяем сами.

# machine.yaml для production
machine:
  features:
    rbac: true
    stableHostname: true
  time:
    servers:
      - ntp.company.local
  sysctls:
    net.core.somaxconn: 65535
    net.ipv4.tcp_tw_reuse: 1
  kubelet:
    extraArgs:
      feature-gates: "RotateKubeletServerCertificate=true"
      protect-kernel-defaults: true
    nodeIP:
      validSubnets:
        - 10.0.1.0/24
  disks:
    - device: /dev/sdb  # Отдельный диск для etcd
      partitions:
        - mountpoint: /var/lib/etcd
          size: 100GB

cluster:
  etcd:
    advertisedSubnets:
      - 10.0.1.0/24
  apiServer:
    auditPolicy:
      apiVersion: audit.k8s.io/v1
      kind: Policy
      rules:
        - level: Metadata

Интеграция с Cilium CNI

После bootstrap первым делом ставим Cilium — он закрывает enterprise networking на уровне, который нам нужен в production. eBPF, network policies, observability — всё это Cilium даёт без лишних костылей.

# Установка Cilium для Talos
helm repo add cilium https://helm.cilium.io/
helm install cilium cilium/cilium   --namespace kube-system   --set kubeProxyReplacement=strict   --set k8sServiceHost=10.0.1.100   --set k8sServicePort=6443   --set operator.replicas=2   --set ipam.mode=kubernetes

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

# Rolling update кластера
talosctl upgrade   --nodes 10.0.1.10,10.0.1.11,10.0.1.12   --image ghcr.io/siderolabs/installer:v1.6.0

# Проверка статуса обновления
talosctl version --nodes 10.0.1.10,10.0.1.11,10.0.1.12
kubectl get nodes

Нужна помощь с внедрением?

Развернули Talos Linux кластеры для 10+ enterprise проектов. Поможем с архитектурой, настройкой bare metal, интеграцией с existing инфраструктурой.

Написать на boss@itfresh.ru или Telegram @ITfresh_Boss

Подпишитесь на рассылку ITfresh

Каждую неделю выпускаем практические гайды для IT-руководителей и системных администраторов: безопасность, 1С, миграции, резервное копирование, лайфхаки из живых проектов. Ничего теоретического — только то, что реально работает.

Письмо придёт в течение минутыНе нашли его во «Входящих» — загляните в папку «Спам» или «Промоакции» и нажмите «Не спам». Так все следующие выпуски будут приходить прямо в основную почту.
Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.