Upload files to "loki-ingress-argocd-setup"
This commit is contained in:
200
loki-ingress-argocd-setup/README.md
Normal file
200
loki-ingress-argocd-setup/README.md
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
# 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 (измени!)
|
||||||
14
loki-ingress-argocd-setup/middleware-auth.yaml
Normal file
14
loki-ingress-argocd-setup/middleware-auth.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
# Traefik Middleware для Basic Auth
|
||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: loki-auth
|
||||||
|
namespace: loki
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: loki
|
||||||
|
argocd.argoproj.io/instance: loki
|
||||||
|
spec:
|
||||||
|
basicAuth:
|
||||||
|
secret: loki-basic-auth
|
||||||
|
removeHeader: true
|
||||||
17
loki-ingress-argocd-setup/secret-basic-auth.yaml
Normal file
17
loki-ingress-argocd-setup/secret-basic-auth.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
# Basic Auth Secret для защиты Loki
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: loki-basic-auth
|
||||||
|
namespace: loki
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: loki
|
||||||
|
argocd.argoproj.io/instance: loki
|
||||||
|
type: Opaque
|
||||||
|
stringData:
|
||||||
|
# Username: admin
|
||||||
|
# Password: lokipass123
|
||||||
|
# Сгенерировано с помощью: htpasswd -nb admin lokipass123
|
||||||
|
users: |
|
||||||
|
admin:$apr1$8jGXMp0X$xR7yGcZqz.pPJY4IaGQ0n0
|
||||||
Reference in New Issue
Block a user