201 lines
5.3 KiB
Markdown
201 lines
5.3 KiB
Markdown
# Loki Ingress Setup для ArgoCD - Файлы
|
||
|
||
## 📋 Основные документы
|
||
|
||
### 1. **ARGOCD_LOKI_INGRESS_SETUP.md**
|
||
Полная пошаговая инструкция по настройке Loki Ingress через ArgoCD GitOps.
|
||
Включает:
|
||
- Подготовку Git репозитория
|
||
- Создание всех необходимых файлов
|
||
- DNS настройку
|
||
- Troubleshooting
|
||
- Интеграцию с Grafana
|
||
|
||
**Начни с этого файла!**
|
||
|
||
### 2. **CHEATSHEET.md**
|
||
Краткая шпаргалка с:
|
||
- Быстрыми командами
|
||
- Командами для проверки
|
||
- Troubleshooting
|
||
- Полезными LogQL запросами
|
||
|
||
---
|
||
|
||
## 📦 YAML манифесты для ArgoCD
|
||
|
||
### Для директории `apps/loki/`:
|
||
|
||
1. **secret-basic-auth.yaml**
|
||
- Basic Auth credentials для защиты Loki
|
||
- Username: `admin`, Password: `lokipass123`
|
||
- Можно изменить через `htpasswd`
|
||
|
||
2. **middleware-auth.yaml**
|
||
- Traefik Middleware для применения Basic Auth
|
||
- Ссылается на secret-basic-auth
|
||
|
||
3. **ingress-loki.yaml**
|
||
- Ingress для доступа к Loki
|
||
- HTTPS с Let's Encrypt
|
||
- Домен: `loki.thedevops.dev`
|
||
|
||
### Для директории `apps/monitoring/`:
|
||
|
||
4. **grafana-datasource-loki.yaml**
|
||
- ConfigMap для автоматического добавления Loki в Grafana
|
||
- Два datasource: внутренний и внешний
|
||
|
||
---
|
||
|
||
## 🚀 Автоматизация
|
||
|
||
### **deploy-loki-ingress.sh**
|
||
Скрипт для автоматического развертывания:
|
||
- Копирует файлы в правильные директории
|
||
- Делает git commit и push
|
||
- Запускает ArgoCD sync
|
||
- Проверяет статус развертывания
|
||
|
||
**Использование:**
|
||
```bash
|
||
chmod +x deploy-loki-ingress.sh
|
||
./deploy-loki-ingress.sh
|
||
```
|
||
|
||
---
|
||
|
||
## 📁 Альтернативные варианты
|
||
|
||
### **loki-nodeport.yaml**
|
||
NodePort Service для быстрого доступа без DNS/Ingress.
|
||
Доступ по: `http://your-ip:31000`
|
||
|
||
### **loki-ingress.yaml**
|
||
Альтернативная версия Ingress (универсальная).
|
||
|
||
---
|
||
|
||
## 🎯 Быстрый старт
|
||
|
||
### Вариант 1: Автоматический (рекомендуется)
|
||
|
||
```bash
|
||
# 1. Скопируй все файлы на сервер
|
||
# 2. Клонируй git репозиторий
|
||
git clone http://gitea-http.gitea.svc.cluster.local:3000/admin/k3s-gitops.git
|
||
cd k3s-gitops
|
||
|
||
# 3. Запусти скрипт
|
||
./deploy-loki-ingress.sh
|
||
```
|
||
|
||
### Вариант 2: Ручной
|
||
|
||
```bash
|
||
# 1. Клонируй репозиторий
|
||
git clone http://gitea-http.gitea.svc.cluster.local:3000/admin/k3s-gitops.git
|
||
cd k3s-gitops
|
||
|
||
# 2. Скопируй файлы
|
||
cp secret-basic-auth.yaml apps/loki/
|
||
cp middleware-auth.yaml apps/loki/
|
||
cp ingress-loki.yaml apps/loki/
|
||
|
||
# 3. Git операции
|
||
git add apps/loki/*.yaml
|
||
git commit -m "feat(loki): Add Ingress with HTTPS and Basic Auth"
|
||
git push origin main
|
||
|
||
# 4. Синхронизация
|
||
argocd app sync loki
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Проверка
|
||
|
||
После развертывания проверь:
|
||
|
||
```bash
|
||
# 1. Ingress создан
|
||
kubectl get ingress loki -n loki
|
||
|
||
# 2. Сертификат создан
|
||
kubectl get certificate loki-tls -n loki
|
||
|
||
# 3. Доступность
|
||
curl -u admin:lokipass123 https://loki.thedevops.dev/ready
|
||
```
|
||
|
||
---
|
||
|
||
## 🔐 Безопасность
|
||
|
||
**ВАЖНО:** Измени пароль по умолчанию!
|
||
|
||
```bash
|
||
# Создай новый пароль
|
||
htpasswd -nb admin your-secure-password
|
||
|
||
# Обнови secret-basic-auth.yaml
|
||
# Замени строку в stringData.users
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 Дополнительные ресурсы
|
||
|
||
- [Loki Documentation](https://grafana.com/docs/loki/latest/)
|
||
- [ArgoCD Documentation](https://argo-cd.readthedocs.io/)
|
||
- [Traefik Middleware](https://doc.traefik.io/traefik/middlewares/overview/)
|
||
|
||
---
|
||
|
||
## 🆘 Помощь
|
||
|
||
Если возникли проблемы:
|
||
|
||
1. Читай раздел Troubleshooting в `ARGOCD_LOKI_INGRESS_SETUP.md`
|
||
2. Проверь `CHEATSHEET.md` для быстрых команд
|
||
3. Проверь логи:
|
||
```bash
|
||
kubectl logs -n loki loki-0
|
||
kubectl logs -n cert-manager deployment/cert-manager
|
||
kubectl get events -n loki --sort-by='.lastTimestamp'
|
||
```
|
||
|
||
---
|
||
|
||
## 📂 Структура после развертывания
|
||
|
||
```
|
||
k3s-gitops/
|
||
└── apps/
|
||
└── loki/
|
||
├── secret-basic-auth.yaml ← Новый
|
||
├── middleware-auth.yaml ← Новый
|
||
├── ingress-loki.yaml ← Новый
|
||
├── namespace.yaml
|
||
├── configmap-loki.yaml
|
||
├── configmap-promtail.yaml
|
||
├── service.yaml
|
||
├── statefulset.yaml
|
||
└── ...
|
||
```
|
||
|
||
---
|
||
|
||
## 🎉 Результат
|
||
|
||
После успешного развертывания:
|
||
|
||
- ✅ Loki доступен по https://loki.thedevops.dev
|
||
- ✅ HTTPS с Let's Encrypt сертификатом
|
||
- ✅ Basic Authentication защита
|
||
- ✅ Готов к использованию в Grafana
|
||
- ✅ ArgoCD управляет всей конфигурацией
|
||
|
||
**Логин:** admin
|
||
**Пароль:** lokipass123 (измени!)
|