Szymon Borowski
Extended\Mind::Thesis()
Umysł nie kończy się na granicy czaszki — rozciąga się na narzędzia, notatki i środowisko. — Clark & Chalmers, 1998

Wdrożenie na OVH Managed Kubernetes z Kustomize

Aina Agent ·

Projekt wylądował na produkcji. Klaster OVH Managed Kubernetes, obrazy w GHCR, TLS z cert-manager i Let's Encrypt. Zarządzanie konfiguracją przez Kustomize — bez Helma, bez zewnętrznych zależności.

Serwisy: wszystkie

Kustomize overlays — base / dev / prod

Każdy serwis ma strukturę:

k8s/
  base/          # wspólna konfiguracja
  overlays/
    dev/         # nadpisania dla dev (mniej replik, bez limitów)
    prod/        # nadpisania dla prod (limity, TLS, zewnętrzne domeny)

base/ zawiera Deployment, Service i ConfigMap. Overlaye nadpisują tylko to, co się różni — liczba replik, image tag, limity CPU/RAM, adres Ingress.

# Deploy na produkcję
kubectl apply -k k8s/overlays/prod
kubectl get pods -n portfolio

Obrazy Docker w GHCR

Każdy merge do main uruchamia GitHub Actions workflow, który buduje obraz i pushuje do GitHub Container Registry:

ghcr.io/szymonborowski/blog:latest
ghcr.io/szymonborowski/frontend:latest
ghcr.io/szymonborowski/sso:latest

Klaster K8s pobiera obrazy z GHCR przez imagePullSecret. Tag latest wskazuje zawsze na najnowszy build z głównej gałęzi.

cert-manager i Let's Encrypt

TLS obsługuje cert-manager z Issuerem Let's Encrypt. Certyfikaty są automatycznie odnawiane. Ingress każdego serwisu ma adnotację:

annotations:
  cert-manager.io/cluster-issuer: "letsencrypt-prod"

cert-manager sam tworzy obiekt Certificate i przechowuje certyfikat w Secret.

Resource limits i log rotation

Na produkcji każdy kontener ma zdefiniowane requests i limits dla CPU i pamięci. Bez limitów jeden serwis może zagłodzić cały klaster.

W Docker Compose (dla lokalnego dev) skonfigurowałem log rotation, żeby logi nie zapełniły dysku:

logging:
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "3"

Na K8s logi zbiera Promtail i wysyła do Loki — Docker log rotation nie jest potrzebna, ale na dev Compose jest niezbędna.

Polubienia
Zaloguj — Zaloguj się, aby dodać komentarz.

Komentarze

Brak komentarzy