4.0 KiB
4.0 KiB
Loki Ingress - Шпаргалка
Быстрый старт
# 1. Клонируй репозиторий
git clone http://gitea-http.gitea.svc.cluster.local:3000/admin/k3s-gitops.git
cd k3s-gitops
# 2. Скопируй файлы в apps/loki/
cp secret-basic-auth.yaml apps/loki/
cp middleware-auth.yaml apps/loki/
cp ingress-loki.yaml apps/loki/
# 3. Commit и Push
git add apps/loki/*.yaml
git commit -m "feat(loki): Add Ingress with HTTPS and Basic Auth"
git push origin main
# 4. Синхронизация ArgoCD (или жди 3 минуты)
argocd app sync loki
Проверка статуса
# Ingress
kubectl get ingress loki -n loki -o wide
# Certificate
kubectl get certificate loki-tls -n loki
# Все ресурсы
kubectl get all,ingress,secret,middleware,certificate -n loki
Тестирование
# Health check
curl -u admin:lokipass123 https://loki.thedevops.dev/ready
# Metrics
curl -u admin:lokipass123 https://loki.thedevops.dev/metrics
# Labels
curl -u admin:lokipass123 https://loki.thedevops.dev/loki/api/v1/labels
Credentials по умолчанию
- URL: https://loki.thedevops.dev
- Username: admin
- Password: lokipass123
Изменить пароль
# Генерация нового пароля
htpasswd -nb admin your-new-password
# Обновить secret-basic-auth.yaml
# Замени строку в stringData.users
DNS настройка
Type: A
Name: loki.thedevops.dev
Value: 5.182.17.194
TTL: 300
Troubleshooting
Ingress нет IP
kubectl get svc -n kube-system traefik
kubectl logs -n kube-system deployment/traefik --tail=50
Сертификат не создается
kubectl describe certificate loki-tls -n loki
kubectl logs -n cert-manager deployment/cert-manager --tail=50
kubectl get challenge -n loki
401 Unauthorized
kubectl get secret loki-basic-auth -n loki
kubectl get middleware loki-auth -n loki -o yaml
ArgoCD не синхронизирует
argocd app get loki
argocd app sync loki --force
kubectl logs -n argocd deployment/argocd-application-controller --tail=50
Полезные команды
# Логи Loki
kubectl logs -n loki loki-0 -f
# Логи cert-manager
kubectl logs -n cert-manager deployment/cert-manager -f
# События
kubectl get events -n loki --sort-by='.lastTimestamp'
# ArgoCD sync
argocd app sync loki
argocd app get loki
argocd app diff loki
# Принудительная пересинхронизация
argocd app sync loki --prune --force
Grafana интеграция
- Скопируй
grafana-datasource-loki.yamlвapps/monitoring/ - Commit & Push
- Sync ArgoCD приложение monitoring
- Перезапусти Grafana (если нужно):
kubectl rollout restart deployment k8s-monitoring-grafana -n monitoring
Endpoints
/ready- health check/metrics- Prometheus metrics/loki/api/v1/query- LogQL queries/loki/api/v1/labels- available labels/loki/api/v1/label/<name>/values- label values
LogQL примеры в Grafana
# Все логи из loki namespace
{namespace="loki"}
# Логи с ошибками
{namespace="loki"} |= "error"
# Rate за 5 минут
rate({namespace="loki"}[5m])
# Логи конкретного pod
{namespace="loki", pod="loki-0"}
Безопасность
- ✅ HTTPS включен (Let's Encrypt)
- ✅ Basic Auth включен
- 🔲 TODO: Изменить пароль по умолчанию
- 🔲 TODO: Добавить Network Policy
- 🔲 TODO: Настроить Rate Limiting
Структура файлов
apps/loki/
├── secret-basic-auth.yaml ← Новый
├── middleware-auth.yaml ← Новый
├── ingress-loki.yaml ← Новый
├── namespace.yaml
├── configmap-loki.yaml
├── configmap-promtail.yaml
├── service.yaml
├── statefulset.yaml
├── daemonset-promtail.yaml
└── ...