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