- 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 уже существовали)
2.8 KiB
2.8 KiB
MinIO
S3-совместимое объектное хранилище. Используется как backend для Loki, Velero, CSI S3 Driver и других аддонов. Поддерживает standalone и distributed режим.
Быстрый старт
# group_vars/all/addons.yml
addon_minio: true
Секреты в vault.yml:
vault_minio_root_user: "admin"
vault_minio_root_password: "secure-password-min-8-chars"
make addon-minio
Параметры
| Переменная | Умолч. | Описание |
|---|---|---|
minio_mode |
distributed |
standalone | distributed |
minio_replicas |
4 |
Реплик (мин. 4 для distributed) |
minio_storage_size |
10Gi |
PVC на каждую реплику |
minio_ingress_enabled |
false |
Console + API через Ingress |
Режим standalone (одна нода)
minio_mode: "standalone"
minio_replicas: 1
minio_storage_size: "50Gi"
Включить Ingress
minio_ingress_enabled: true
minio_console_ingress_host: "minio.example.com"
minio_api_ingress_host: "s3.example.com"
minio_ingress_tls: true
Использование из приложений
# Переменные окружения:
env:
- name: MINIO_ENDPOINT
value: "minio.minio.svc.cluster.local:9000"
- name: MINIO_ACCESS_KEY
valueFrom:
secretKeyRef:
name: minio-credentials
key: access-key
- name: MINIO_SECRET_KEY
valueFrom:
secretKeyRef:
name: minio-credentials
key: secret-key
MinIO Client (mc) — управление
# Установить mc
kubectl run minio-client --image=minio/mc --rm -it -- bash
# Настроить endpoint
mc alias set myminio http://minio.minio.svc.cluster.local:9000 admin password
# Операции с бакетами
mc mb myminio/my-bucket
mc ls myminio/
mc cp myfile.txt myminio/my-bucket/
mc policy set public myminio/public-bucket
SDK пример (Python)
from minio import Minio
client = Minio(
"minio.minio.svc.cluster.local:9000",
access_key="admin",
secret_key="password",
secure=False
)
# Загрузить файл
client.fput_object("my-bucket", "object-name", "/path/to/file")
# Скачать файл
client.fget_object("my-bucket", "object-name", "/tmp/downloaded")
# Список объектов
for obj in client.list_objects("my-bucket", recursive=True):
print(obj.object_name)
Интеграция с другими аддонами
MinIO автоматически используется при включении:
addon_loki: true— S3 backend для логовaddon_velero: true— S3 backend для бэкапов кластераaddon_csi_s3: true— S3 как PVCaddon_databasus: true— S3 для бэкапов БД