From 47e0ac6904e988740848ea0fdc97dacf4c23d4d5 Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Thu, 5 Mar 2026 12:24:13 +0100 Subject: [PATCH] Added readme files --- exemples/README.md | 62 ++++++++++++++++++++++++++ exemples/exemples-inicials/README.md | 30 +++++++++++++ exemples/maria-db/README.md | 21 +++++++++ exemples/mariadb-replication/README.md | 19 ++++++++ exemples/practica-final/README.md | 29 ++++++++++++ 5 files changed, 161 insertions(+) create mode 100644 exemples/README.md create mode 100644 exemples/exemples-inicials/README.md create mode 100644 exemples/maria-db/README.md create mode 100644 exemples/mariadb-replication/README.md create mode 100644 exemples/practica-final/README.md diff --git a/exemples/README.md b/exemples/README.md new file mode 100644 index 0000000..772c3b6 --- /dev/null +++ b/exemples/README.md @@ -0,0 +1,62 @@ +## **Exemples — Resum i ús ràpid** + +Aquest directori conté manifests Kubernetes d'exemple agrupats en subcarpetes. Són fitxers pensats per aprendre i desplegar recursos bàsics (Pods, Deployments, Services, StatefulSets, PVCs, Ingress, Secrets, etc.) en un clúster local o d'estudi. + +## **Prerequisits** +- **Clúster**: Un clúster Kubernetes (k3s, minikube, kind, etc.). +- **kubectl**: Configurat per apuntar al clúster. + +## **Com aplicar els exemples** +Per aplicar una carpeta sencera: + +```bash +kubectl apply -f exemples/exemples-inicials/ +kubectl apply -f exemples/practica-final/install.yaml +``` + +Aplica fitxers individuals amb `kubectl apply -f `. + +## **Estructura i descripció dels fitxers** + +**exemples-inicials/** +- **File**: [exemples/exemples-inicials/app-configurada.yaml](exemples/exemples-inicials/app-configurada.yaml) — Exemple de desplegament amb configuració (ConfigMap/variables) aplicada. +- **File**: [exemples/exemples-inicials/deploy.yaml](exemples/exemples-inicials/deploy.yaml) — Manifest d'un `Deployment` bàsic amb rèpliques. +- **File**: [exemples/exemples-inicials/nginx-clusterip.yaml](exemples/exemples-inicials/nginx-clusterip.yaml) — `Service` de tipus `ClusterIP` per Nginx. +- **File**: [exemples/exemples-inicials/nginx-deployment.yaml](exemples/exemples-inicials/nginx-deployment.yaml) — `Deployment` de Nginx. +- **File**: [exemples/exemples-inicials/nginx-ingress.yaml](exemples/exemples-inicials/nginx-ingress.yaml) — Regles d'`Ingress` per exposar Nginx (requereix controlador d'ingress). +- **File**: [exemples/exemples-inicials/pod.yaml](exemples/exemples-inicials/pod.yaml) — Manifest d'un `Pod` senzill per provar execució bàsica. +- **File**: [exemples/exemples-inicials/redis-deployment.yaml](exemples/exemples-inicials/redis-deployment.yaml) — `Deployment` de Redis (stateless, per proves). +- **File**: [exemples/exemples-inicials/redis-pod.yaml](exemples/exemples-inicials/redis-pod.yaml) — `Pod` de Redis (ús demostratiu). +- **File**: [exemples/exemples-inicials/redis-pvc.yaml](exemples/exemples-inicials/redis-pvc.yaml) — `PersistentVolumeClaim` per a Redis. +- **File**: [exemples/exemples-inicials/redis-stateful-replica.yaml](exemples/exemples-inicials/redis-stateful-replica.yaml) — Exemple de rèplica/escala en `StatefulSet` per Redis. +- **File**: [exemples/exemples-inicials/redis-stateful.yaml](exemples/exemples-inicials/redis-stateful.yaml) — `StatefulSet` per desplegament de Redis amb PVCs. +- **File**: [exemples/exemples-inicials/service.yaml](exemples/exemples-inicials/service.yaml) — Exemple genèric de `Service` (ClusterIP/NodePort segons configuració). + +**maria-db/** +- **File**: [exemples/maria-db/mariadb-deployment.yaml](exemples/maria-db/mariadb-deployment.yaml) — `Deployment` (o StatefulSet) per MariaDB. +- **File**: [exemples/maria-db/mariadb-pvc.yaml](exemples/maria-db/mariadb-pvc.yaml) — `PersistentVolumeClaim` per l'emmagatzematge de la base de dades. + +**mariadb-replication/** +- **File**: [exemples/mariadb-replication/mariadb-replication.yaml](exemples/mariadb-replication/mariadb-replication.yaml) — Manifests per muntar un entorn de replicació de MariaDB (master/replica) amb secrets i configuració. + +**practica-final/** +- **File**: [exemples/practica-final/01-secret.yaml](exemples/practica-final/01-secret.yaml) — `Secret` amb credencials per la pràctica final. +- **File**: [exemples/practica-final/02-pvcs.yaml](exemples/practica-final/02-pvcs.yaml) — PVCs requerits per MariaDB/WordPress. +- **File**: [exemples/practica-final/03-mariadb.yaml](exemples/practica-final/03-mariadb.yaml) — Desplegament de MariaDB per la pràctica final. +- **File**: [exemples/practica-final/04-wordpress.yaml](exemples/practica-final/04-wordpress.yaml) — `Deployment`/`Service` de WordPress configurat per connectar amb MariaDB. +- **File**: [exemples/practica-final/05-ingress.yaml](exemples/practica-final/05-ingress.yaml) — `Ingress` per exposar WordPress públicament (requereix controlador d'ingress i DNS/hosts si s'usa hostname). +- **File**: [exemples/practica-final/install.yaml](exemples/practica-final/install.yaml) — Fitxer compost per aplicar l'ordre correcta (secrets → PVCs → DB → app → ingress). + +## **Suggeriments i consideracions** +- **Ordre d'aplicació**: Normalment `Secret` → `PVCs` → `Deployments/StatefulSets` → `Services` → `Ingress`. +- **Ingress**: Comprova que tens un controlador d'ingress actiu (traefik, nginx-ingress, etc.). +- **Persistència**: Si treballes en un entorn local, revisa la provisió de `StorageClass` per assegurar que els PVCs es vinculen. +- **Neteja**: Per eliminar recursos després de provar: + +```bash +kubectl delete -f exemples/practica-final/install.yaml +kubectl delete -f exemples/exemples-inicials/ +``` + +--- +Si vols, puc: generar un README per cada subcarpeta individual, afegir descripcions més detallades per cada manifest o crear scripts d'aplicació/neteja automatitzats. diff --git a/exemples/exemples-inicials/README.md b/exemples/exemples-inicials/README.md new file mode 100644 index 0000000..23f5933 --- /dev/null +++ b/exemples/exemples-inicials/README.md @@ -0,0 +1,30 @@ +# Exemples inicials + +Aquest directori conté exemples bàsics per aprendre a desplegar recursos Kubernetes senzills: `Pod`, `Deployment`, `Service`, `Ingress` i exemples de Redis (stateless i stateful). + +Prerequisits +- Un clúster Kubernetes (k3s, minikube, kind, etc.). +- `kubectl` configurat per apuntar al clúster. + +Com aplicar +```bash +kubectl apply -f exemples/exemples-inicials/ +``` + +Fitxers i propòsit +- `app-configurada.yaml` — Exemple de Deployment amb configuració (ConfigMap/variables d'entorn). +- `deploy.yaml` — Deployment genèric amb rèpliques. +- `nginx-clusterip.yaml` — Service `ClusterIP` per Nginx. +- `nginx-deployment.yaml` — Deployment de Nginx. +- `nginx-ingress.yaml` — Regles d'Ingress per Nginx (requereix controlador d'ingress). +- `pod.yaml` — Pod senzill per proves ràpides. +- `redis-deployment.yaml` — Deployment de Redis sense persistència (proves). +- `redis-pod.yaml` — Pod de Redis demostratiu. +- `redis-pvc.yaml` — PVC per a Redis (per usar amb StatefulSet). +- `redis-stateful-replica.yaml` — Exemple de rèplica amb StatefulSet. +- `redis-stateful.yaml` — StatefulSet de Redis amb persistència. +- `service.yaml` — Exemple genèric de Service. + +Notes +- Aplica PVCs abans de StatefulSets si cal persistència. +- Comprova el controlador d'Ingress si utilitzes `nginx-ingress.yaml`. diff --git a/exemples/maria-db/README.md b/exemples/maria-db/README.md new file mode 100644 index 0000000..7ab9011 --- /dev/null +++ b/exemples/maria-db/README.md @@ -0,0 +1,21 @@ +# MariaDB + +Conté manifests per desplegar una instància de MariaDB i el seu emmagatzematge persistent. + +Prerequisits +- StorageClass funcional per enlazar PVCs. +- `kubectl` apuntant al clúster. + +Com aplicar +```bash +kubectl apply -f exemples/maria-db/mariadb-pvc.yaml +kubectl apply -f exemples/maria-db/mariadb-deployment.yaml +``` + +Fitxers +- `mariadb-pvc.yaml` — `PersistentVolumeClaim` per a les dades de MariaDB. +- `mariadb-deployment.yaml` — Deployment o StatefulSet (segons el manifest) per MariaDB. + +Notes +- Revisa els recursos del PVC (size, storageClassName) per adaptar-los al teu entorn. +- Si necessites replicació, mira la carpeta `mariadb-replication`. diff --git a/exemples/mariadb-replication/README.md b/exemples/mariadb-replication/README.md new file mode 100644 index 0000000..eee6934 --- /dev/null +++ b/exemples/mariadb-replication/README.md @@ -0,0 +1,19 @@ +# MariaDB Replication + +Manifests per muntar un entorn de replicació de MariaDB (master/replica). Inclou configuracions i possiblement `Secrets` per credencials. + +Prerequisits +- Control de permisos i credencials (secrets). +- PVCs provisionats per emmagatzemar dades per a cada instància. + +Com aplicar (ordre suggerida) +```bash +kubectl apply -f exemples/mariadb-replication/ # o aplicar fitxers per ordre si cal +``` + +Fitxers +- `mariadb-replication.yaml` — Conté la configuració principal per la replicació (roles, inicialització, serveis, etc.). + +Consideracions +- La replicació pot requerir inicialització manual (dump/import), usuaris específics i configuracions del servidor MariaDB. +- Revisa l'estratègia de backups i restauració abans d'usar en producció. diff --git a/exemples/practica-final/README.md b/exemples/practica-final/README.md new file mode 100644 index 0000000..08edf3f --- /dev/null +++ b/exemples/practica-final/README.md @@ -0,0 +1,29 @@ +# Pràctica final + +Carpeta que agrupa els manifests per una pràctica completa (WordPress + MariaDB) amb secrets, PVCs, base de dades i ingress. + +Prerequisits +- Controlador d'Ingress actiu (traefik, nginx-ingress, etc.). +- `kubectl` configurat. +- StorageClass per proveir PVCs. + +Ordre d'aplicació recomanat +1. `01-secret.yaml` — Crear `Secret` amb credencials. +2. `02-pvcs.yaml` — Crear `PersistentVolumeClaim` per MariaDB i WordPress. +3. `03-mariadb.yaml` — Desplegar MariaDB. +4. `04-wordpress.yaml` — Desplegar WordPress connectat a MariaDB. +5. `05-ingress.yaml` — Crear Ingress per exposar l'aplicació. + +Com aplicar tot junt +```bash +kubectl apply -f exemples/practica-final/install.yaml +``` + +Neteja +```bash +kubectl delete -f exemples/practica-final/install.yaml +``` + +Notes +- Revisa que els secrets (usuaris/contrassenyes) i les connexions (host/port) entre WordPress i MariaDB estiguin correctes abans d'executar la pràctica. +- Si utilitzes hostnames en l'Ingress, afegeix les entrades corresponents al teu `/etc/hosts` o DNS de desenvolupament.