Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Manager - Kubernetes Deployment

System zarządzania zadaniami wdrażany na Kubernetes.

Struktura projektu

├── app/
│   └── backend/
│       ├── Dockerfile
│       ├── package.json
│       └── src/
│           └── server.js
├── k8s/
│   ├── postgres/
│   │   ├── deployment.yaml
│   │   ├── service.yaml
│   │   ├── configmap.yaml
│   │   └── secret.yaml
│   └── backend/
│       ├── deployment.yaml
│       └── service.yaml
└── .gitignore

Wymagania

  • Docker
  • Kubernetes cluster (minikube, Docker Desktop, itp.)
  • kubectl
  • Node.js 20+ (do lokalnego testowania)

Budowanie

Lokalne testowanie

cd app/backend
npm install
npm run dev

Docker image

cd app/backend
docker build -t task-manager-backend:latest .

Wdrażanie na Kubernetes

1. Załaduj obraz do klastra (lokalnie)

Dla minikube:

eval $(minikube docker-env)
docker build -t task-manager-backend:latest app/backend/

2. Aplikuj manifesty

# PostgreSQL
kubectl apply -f k8s/postgres/secret.yaml
kubectl apply -f k8s/postgres/configmap.yaml
kubectl apply -f k8s/postgres/deployment.yaml
kubectl apply -f k8s/postgres/service.yaml

# Backend
kubectl apply -f k8s/backend/deployment.yaml
kubectl apply -f k8s/backend/service.yaml

3. Czekaj na uruchomienie Podów

kubectl get pods -w

4. Testowanie

# Health check
curl http://localhost:8080/health

# Pobranie wszystkich zadań
curl http://localhost:8080/tasks

# Utworzenie nowego zadania
curl -X POST http://localhost:8080/tasks \
  -H "Content-Type: application/json" \
  -d '{"title":"Moje zadanie","description":"Opis zadania"}'

Wdrażanie

  • Backend: Node.js 20 Alpine
  • Baza: PostgreSQL 16 Alpine
  • Sieć: Kubernetes Service (ClusterIP dla DB, LoadBalancer dla API)
  • Bez trwałych wolumenów w tej wersji

Zmienne środowiskowe

Backend odczytuje konfigurację z:

  • DB_HOST - adres PostgreSQL
  • DB_PORT - port PostgreSQL
  • DB_NAME - nazwa bazy
  • DB_USER - użytkownik (z Secret)
  • DB_PASSWORD - hasło (z Secret)
  • PORT - port aplikacji (default: 8080)

Uwagi

⚠️ W tej wersji baza danych NIE ma trwałego wolumenu. Restarting Poda powoduje utratę danych.

Przegląd zasobów

kubectl describe deployment postgres
kubectl describe deployment task-manager-backend
kubectl describe service postgres
kubectl describe service task-manager-backend
kubectl logs -f deployment/postgres
kubectl logs -f deployment/task-manager-backend

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages