Инфраструктура — k3s на DigitalOcean — Презентация
Продолжительность: ~10 минут Цель: Студенты понимают, почему k3s – правильный выбор для легковесного Kubernetes, что предлагает DigitalOcean и как выглядит целевая архитектура.
Слайд 1: Налог на Kubernetes
Давайте поговорим о слоне в комнате. Kubernetes – это великолепно. Но это ещё и очень много.
Полноценный кластер под управлением kubeadm требует:
- 3 узла control plane (для HA) – каждому минимум 2 CPU, 4 ГБ RAM
- etcd – отдельная распределённая база данных только для состояния кластера
- Сетевой плагин – Calico, Cilium, Flannel – нужно выбрать и настроить
- Балансировщик нагрузки – MetalLB или LB облачного провайдера
- Хранилище – CSI-драйверы, провизионеры persistent volume
- Ingress – Nginx, Traefik, HAProxy – ещё один выбор, ещё одна настройка
Это легко $200-400/месяц у любого облачного провайдера, и это до того, как вы задеплоите хотя бы один под своего приложения. Для продакшн-платформы электронной коммерции с 50 микросервисами? Оправданно. Для нашего учебного проекта? Абсурд.
Нам нужно что-то полегче.
Слайд 2: Встречайте k3s – Kubernetes на диете
k3s – это Kubernetes. Не “что-то вроде Kubernetes” и не “совместимый с Kubernetes”. Это сертифицированный, полностью соответствующий стандартам Kubernetes, который проходит те же самые тесты CNCF conformance, что и полная дистрибуция. Разница – в упаковке.
| Характеристика | Полный K8s (kubeadm) | k3s |
|---|---|---|
| Размер бинарника | ~300 МБ + зависимости | ~60 МБ один бинарник |
| Базовое потребление RAM | 2-4 ГБ на узел | 512 МБ |
| etcd | Обязательно (отдельный кластер) | SQLite (встроенный, опционально etcd/postgres) |
| Сеть | BYO (Calico, Cilium) | Flannel (встроенный) |
| Ingress | BYO (Nginx, Traefik) | Traefik (встроенный) |
| Балансировщик нагрузки | BYO (MetalLB) | ServiceLB (встроенный) |
| Хранилище | BYO CSI-драйвер | Local-path provisioner (встроенный) |
| Время установки | 30-60 минут | 30 секунд |
Одна команда curl. Это вся установка. Всё, что нужно, включено. И каждая команда kubectl, которую вы знаете, работает точно так же.
Интересный факт: k3s назван так, потому что он “в два раза меньше k8s”. В Kubernetes 10 букв, что сократили до k-8-s (k + 8 букв + s). k3s следует той же схеме, но с 5 буквами – k + 3 буквы + s. Половина имени, половина объёма. Проект был создан Дарреном Шепардом в Rancher Labs (теперь часть SUSE) и выпущен в 2019 году.
Слайд 3: Почему DigitalOcean?
Нам нужен сервер. Облачных провайдеров десятки. Вот почему для этого курса подходит DigitalOcean:
Простота. Создание дроплета занимает 60 секунд через UI. Никаких VPC для настройки, никаких IAM-ролей, никакой консоли с 47 вкладками. Клик, клик, готово.
Предсказуемая цена. Дроплет s-2vcpu-4gb (2 vCPU, 4 ГБ RAM, 80 ГБ SSD) стоит ровно $24/месяц. Никаких внезапных плат за трафик, никаких “зависит от использования”. Двадцать четыре доллара. Точка.
Достаточно для реальной работы. DigitalOcean – это не только для туториалов. Множество продакшн-нагрузок работает на нём. Для одноузлового кластера k3s с нашим приложением – более чем достаточно.
Альтернативы тоже хороши – Hetzner ($4.50/мес за 2 ГБ!), Linode, Vultr, даже запасной Raspberry Pi на вашем столе. Установка k3s везде одинаковая. Мы используем DigitalOcean, потому что у него чистая консоль и прозрачное ценообразование.
Слайд 4: Целевая архитектура
Вот что мы строим в этом блоке:
Your Laptop DigitalOcean Droplet
+--------------+ +---------------------------+
| | SSH / kubectl | Ubuntu 22.04 |
| Claude Code | ─────────────────── | k3s (single node) |
| kubectl | | |
| | | Pods: |
+--------------+ | ┌─────────────────────┐ |
| │ ai-coderrank (Next) │ |
| │ namespace: ai-coder │ |
| └─────────────────────┘ |
| |
| System pods: |
| - CoreDNS |
| - Traefik |
| - ServiceLB |
| - Metrics server |
+---------------------------+
Один дроплет. Один бинарник k3s. Ваше приложение запущено как поды. Вот и всё.
Пока не выставлен наружу – мы сделаем это с ArgoCD и NodePort в Блоке 12. А сейчас проверяем работоспособность через kubectl port-forward с вашего ноутбука.
Слайд 5: Что Claude делает (и не делает) для инфраструктуры
Давайте чётко определим роль Claude Code в работе с инфраструктурой.
В чём Claude хорош:
- Генерация скриптов провизионирования с правильными флагами и опциями
- Запоминание точного синтаксиса
scp, который вы вечно гуглите - Написание команды
curl | shс правильными переменными окружения - Отладка, когда
kubectl get nodesпоказываетNotReady - Объяснение, что делает каждый шаг, прежде чем вы его выполните
Чего Claude не может:
- Нажимать кнопки в консоли DigitalOcean за вас
- Подключаться по SSH к вашему серверу (он выполняет команды на вашей машине, не на удалённой)
- Исправлять сетевые проблемы, которые не может наблюдать (нет доступа к состоянию удалённого сервера)
Рабочий процесс такой: Claude генерирует команду, вы её выполняете. Claude читает вывод, предлагает следующий шаг. Контроль остаётся у вас. Это особенно важно для инфраструктуры – неправильная команда на удалённом сервере может сломать то, что трудно откатить.
Думайте о Claude как о старшем инженере, сидящем рядом с вами во время первой настройки сервера. Он говорит вам, что набирать и почему. Он читает сообщения об ошибках вместе с вами. Но ваши пальцы на клавиатуре, и вы решаете, когда нажать Enter.
Слайд 6: План действий
Вот как выглядит практическая часть, шаг за шагом:
- Провизионирование – Создайте дроплет DigitalOcean (Claude генерирует скрипт, или используйте консоль)
- Подключение – Войдите по SSH на дроплет, убедитесь, что это чистая Ubuntu-машина
- Установка k3s – Одна команда, ждём 30 секунд, готово
- Проверка кластера –
kubectl get nodes,kubectl get pods -A - Копирование kubeconfig – Перенесите конфиг k3s на ноутбук для удалённого управления через kubectl
- Деплой –
kubectl apply -k k8s/с вашего ноутбука - Проверка приложения – Port-forward и открываем приложение в браузере
Семь шагов. Тридцать минут. В конце у вас настоящий Kubernetes-кластер, на котором работает ваше настоящее приложение.
Ключевые выводы
| Концепция | Что это | Почему это важно |
|---|---|---|
| k3s | Легковесный, сертифицированный Kubernetes в одном бинарнике | Полная мощь K8s на сервере за $24/месяц |
| Дроплет DigitalOcean | Виртуальный сервер в облаке | Просто, предсказуемо, недорого |
| kubeconfig | Файл с учётными данными для доступа через kubectl | Позволяет управлять кластером с ноутбука |
kubectl apply -k |
Применение манифестов через Kustomize | Деплоит все K8s-ресурсы одной командой |
| Port-forward | Туннель порта пода на localhost | Тестирование без открытия доступа в интернет |
Переход: Пора поднять настоящую инфраструктуру. Сейчас вы перейдёте от “у меня есть YAML-файлы” к “у меня работают поды в облаке”. Поехали.
Готовы проверить себя?
Пройти квиз →