Sergey Antropoff eccc1c2a01 docs: полная документация проекта — docs/ и README.md для каждого аддона
- README.md: перепиcан как компактный обзор (98 строк) с навигацией по docs/
- docs/: 13 файлов — getting-started, architecture, configuration, addons,
  storage, security, cicd, observability, networking, operations,
  make-reference, molecule-testing, troubleshooting
- addons/*/README.md: 31 новый файл — описание, параметры, примеры кода
  для каждого из 34 аддонов (vault и external-secrets уже существовали)
2026-04-26 00:22:06 +03:00
2026-04-17 08:37:27 +03:00
2026-04-17 08:37:27 +03:00
2026-04-17 08:37:27 +03:00
2026-04-17 08:37:27 +03:00
2026-04-17 08:58:26 +03:00
2026-04-17 08:37:27 +03:00
2026-04-17 08:37:27 +03:00

K3S Ansible Stack

Полный Kubernetes стек на базе K3S с HA (High Availability), управляемый через Ansible внутри Docker-контейнера. Ansible, Helm и kubectl устанавливать не нужно — всё работает через make.

Быстрый старт

git clone <url> k3s-ansible && cd k3s-ansible
make setup          # создать .env
# → отредактируй .env, inventory/hosts.ini, group_vars/all/main.yml
make vault-create   # создать vault с секретами
make build          # собрать Docker образ
make install        # развернуть K3S HA кластер
make install-addons # установить аддоны (из group_vars/all/addons.yml)

Архитектура

┌──────────────────────────────────────────────────────────────┐
│                     Локальная сеть 192.168.1.0/24            │
│  VIP: 192.168.1.100 (kube-vip)                               │
│    ├── :6443  K3S API Server (HA)                            │
│    └── :80/:443  ingress-nginx → приложения                  │
│                                                              │
│  ┌──────────────┐  ┌──────────────┐  ┌────────────────┐      │
│  │  master01    │  │  worker01    │  │  rpi01         │      │
│  │  K3S server  │  │  K3S server  │  │  K3S server    │      │
│  │  etcd #1     │  │  etcd #2     │  │  etcd #3       │      │
│  │  NFS server  │  │  workloads ✓ │  │  NoSchedule    │      │
│  │  workloads ✓ │  │              │  │  workloads ✗   │      │
│  └──────────────┘  └──────────────┘  └────────────────┘      │
│  StorageClass: nfs-master01 (default)                        │
└──────────────────────────────────────────────────────────────┘

HA-режим (embedded etcd): при отказе любой одной ноды кластер продолжает работать.

CNI: flannel (встроен) | calico (Network Policy, BGP) | cilium (eBPF, Hubble)

Аддоны (34)

Категория Аддоны
Сеть ingress-nginx, cert-manager, istio + kiali, crowdsec, netbird VPN
Хранилище nfs-server, csi-nfs, longhorn, minio, csi-s3, csi-ceph, csi-glusterfs
Базы данных postgresql, mysql, databasus
Observability metrics-server, prometheus+grafana+alertmanager, loki, promtail, tempo, pushgateway
CI/CD jenkins, gitea + actions, argocd
Безопасность vault, external-secrets, vaultwarden
Инфраструктура harbor, kubernetes-dashboard, velero, smtp-relay
Файловые хранилища nextcloud, owncloud

Все аддоны включаются флагами в group_vars/all/addons.yml. Установка: make addon-<name>.

Документация

Раздел Описание
Быстрый старт Полная установка с нуля (12 шагов)
Архитектура Топология кластера, CNI, компоненты
Настройка K3S, kube-vip, NFS, ingress, cert-manager
Аддоны Каталог всех аддонов, флаги, зависимости
Хранилище NFS, Longhorn, MinIO, CSI S3, Ceph, GlusterFS
Безопасность Vault, External Secrets, CrowdSec, Vaultwarden
CI/CD Jenkins, Gitea Actions, ArgoCD
Observability Prometheus, Grafana, Loki, Tempo, Pushgateway
Сеть ingress-nginx, cert-manager, Istio, NetBird VPN
Операции Управление нодами, etcd backup/restore, K3S upgrade
Make команды Полный справочник make
Molecule тесты Тестирование ролей, написание тестов
Решение проблем Таблица проблем, диагностика

Структура проекта

k3s-ansible/
├── Makefile                    ← Все команды (единая точка входа)
├── Dockerfile                  ← Ansible + Helm + kubectl
├── group_vars/all/
│   ├── main.yml                ← Переменные кластера
│   ├── addons.yml              ← Флаги и настройки аддонов
│   └── vault.yml               ← Зашифрованные секреты
├── inventory/hosts.ini         ← IP и параметры серверов
├── host_vars/                  ← Настройки конкретных нод
├── playbooks/
│   ├── site.yml                ← Основной плейбук
│   └── addons.yml              ← Плейбук аддонов
├── roles/                      ← Роли кластера (k3s, kube-vip, nfs...)
├── addons/                     ← Аддоны (каждый с README.md)
└── docs/                       ← Документация

Требования

Локальная машина: Docker >= 24.0, make, SSH ключ

Серверы: Ubuntu 20.04/22.04/24.04 или Debian 11/12, SSH доступ, sudo без пароля, 2+ ГБ RAM

Description
No description provided
Readme 1.9 MiB
Languages
Jinja 56.1%
Makefile 20%
Python 10.7%
Shell 7.7%
Smarty 3.8%
Other 1.7%