Как настроить Helm + K3s кластер на VPS для микро‑сервисов: опыт, ошибки и победы

ГлавнаяКак настроить Helm + K3s кластер на VPS для микро‑сервисов: опыт, ошибки и победы

Содержание

Однажды я поняла, что запускаю слишком много маленьких сервисов на отдельных VPS. Кто-то занимается логами, кто-то авторизацией, у кого-то — своя база. Всё это жило в изоляции, без единой точки управления, и каждый апдейт превращался в ручной квест. В итоге я решила: хватит, пора навести порядок. Так я пришла к K3s и Helm — лёгкой оркестрации на слабых серверах.

Если тебе, как и мне, важно держать всё под контролем, но без перегруза от полного Kubernetes, то этот гайд тебе пригодится.


Почему именно K3s?

Если коротко — это облегчённая версия Kubernetes, разработанная Rancher Labs. K3s идеально подходит для установки на VPS, потому что:

  • Он маленький и не грузит систему;
  • Можно поднять кластер даже на слабом сервере;
  • Работает стабильно, даже если у тебя не сотни подов.

Идеально, когда тебе нужно просто управлять микросервисами и не сойти с ума от YAML-конфигов.


Как всё выглядит у меня

У меня три VPS: два рабочих (в Европе и Казахстане) и один резервный. На каждом крутится агент, а мастер — на основном сервере. Helm использую для установки сервисов: Prometheus, Loki, Cert-Manager, Redis и свой небольшой API на FastAPI.

Теперь всё это раскатывается одной командой — и мне не нужно каждый раз вручную всё настраивать.


Установка K3s на Ubuntu VPS

На основной ноде (мастере):

curl -sfL https://get.k3s.io | sh -

После установки K3s сам поднимет кластер и создаст конфигурационный файл:

sudo cat /etc/rancher/k3s/k3s.yaml

Скачай его к себе и настрой

kubectl
:

export KUBECONFIG=~/k3s.yaml

На остальных VPS (агентах) запускаем так:

curl -sfL https://get.k3s.io | K3S_URL=https://MASTER_IP:6443 K3S_TOKEN=yourtoken sh -

Токен можно взять отсюда:

sudo cat /var/lib/rancher/k3s/server/node-token

Установка Helm

Установка Helm — максимально простая:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Проверяем:

helm version

Если всё ок — идём дальше.


Простой пример: установка Prometheus через Helm

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

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update

Ставим:

helm install monitoring prometheus-community/prometheus

Voilà! У нас есть мониторинг без боли и ручных деплоев.


Полезные штуки, которые я использую

  • Traefik — встроенный в K3s, проксирует мои сервисы с TLS.
  • Loki + Grafana — для логов и метрик.
  • Cert-Manager — автоматически обновляет сертификаты.
  • K9s — CLI-интерфейс для Kubernetes, чтобы не жить в
    kubectl describe pod
    .

Частые грабли

1. Сетевые настройки:
Некоторые VPS-провайдеры блокируют порты или имеют нестандартную NAT-схему. Потеряла кучу времени на отладку, пока не настроила корректно фаервол.

2. Память:
Даже K3s не всесилен. Минимум — 1 ГБ, но лучше 2+. Мониторинг сразу покажет, если что-то перегружает сервер.

3. Версии Helm-чартов:
Обновления бывают «ломающими». Лучше фиксировать версии Helm-чартов в

values.yaml
.


А это точно лучше Docker Compose?

Для совсем маленьких проектов — нет. Но как только тебе нужно:

  • масштабировать;
  • обновлять сервисы без остановки;
  • подключать разные ноды;

…тогда K3s даёт реальную свободу и порядок. Особенно в связке с Helm.


Когда я только начинала, мне казалось, что Kubernetes — это боль. Но K3s оказался спасением: лёгкий, понятный, и при этом — мощный. В связке с Helm он позволяет настроить деплой и управление сервисами буквально за вечер. Главное — не бояться YAML’ов и немного поиграться на тестовом VPS.

Если ты устал вручную катать обновления на каждый микросервис — попробуй. Это действительно упрощает жизнь.


Делаем год чуть длиннее

365 дней VPS? А как насчёт 395?

Месяц в подарок
COPIED
NEWCOMM COPIED