From 6bdc7e0e30a4170c2b1075a7a67dfcee3d0b6d2c Mon Sep 17 00:00:00 2001 From: xguefer Date: Tue, 26 Aug 2025 23:48:51 +0000 Subject: [PATCH] Actualizar minio/readme.md --- minio/README-UPDATE.md | 9 ----- minio/readme.md | 78 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 9 deletions(-) delete mode 100644 minio/README-UPDATE.md create mode 100644 minio/readme.md diff --git a/minio/README-UPDATE.md b/minio/README-UPDATE.md deleted file mode 100644 index 335c376..0000000 --- a/minio/README-UPDATE.md +++ /dev/null @@ -1,9 +0,0 @@ -Servicios actualizados (site-a y site-b): -- Selector reducido a `app: minio` -- targetPort numérico 9000/9001 -Aplica con: - kubectl apply -f site-a/service.yaml - kubectl apply -f site-b/service.yaml -Luego verifica: - kubectl -n minio-site-a get endpoints minio -o wide - kubectl -n minio-site-b get endpoints minio -o wide \ No newline at end of file diff --git a/minio/readme.md b/minio/readme.md new file mode 100644 index 0000000..a85b686 --- /dev/null +++ b/minio/readme.md @@ -0,0 +1,78 @@ +# MinIO en Kubernetes — c2et.net (Site A/B) + +Este paquete contiene manifiestos sin Helm para desplegar **dos instancias independientes de MinIO**, +una por site, usando tus StorageClasses `sc-me5-site-a` y `sc-me5-site-b`, y forzando programación por zona. + +## Estructura + +``` +minio-k8s-c2et-net/ + site-a/ + namespace.yaml + secret-root.yaml + pvc.yaml + statefulset.yaml + service.yaml + ingress-api.yaml + ingress-console.yaml + site-b/ + (idéntico con valores del site B) +``` + +## Credenciales de administración +- Usuario: **admin** +- Password: **Pozuelo12345** + +> Cambia estas credenciales en `secret-root.yaml` antes de ir a producción. + +## Dominios +- Site A API: `s3-a.c2et.net` +- Site A Consola: `console.s3-a.c2et.net` +- Site B API: `s3-b.c2et.net` +- Site B Consola: `console.s3-b.c2et.net` + +Requisitos previos: +- IngressClass `nginx` operativo. +- `cert-manager` con `ClusterIssuer` llamado `letsencrypt-prod`. +- DNS apuntando los hosts anteriores al Ingress Controller. + +## Despliegue rápido + +```bash +kubectl apply -f site-a/namespace.yaml +kubectl apply -f site-a/secret-root.yaml +kubectl apply -f site-a/pvc.yaml +kubectl apply -f site-a/service.yaml +kubectl apply -f site-a/statefulset.yaml +kubectl apply -f site-a/ingress-api.yaml +kubectl apply -f site-a/ingress-console.yaml + +kubectl apply -f site-b/namespace.yaml +kubectl apply -f site-b/secret-root.yaml +kubectl apply -f site-b/pvc.yaml +kubectl apply -f site-b/service.yaml +kubectl apply -f site-b/statefulset.yaml +kubectl apply -f site-b/ingress-api.yaml +kubectl apply -f site-b/ingress-console.yaml +``` + +## Probar + +```bash +export AWS_ACCESS_KEY_ID=admin +export AWS_SECRET_ACCESS_KEY='Pozuelo12345' +export AWS_S3_FORCE_PATH_STYLE=true + +aws --endpoint-url https://s3-a.c2et.net s3 mb s3://mi-bucket-a +aws --endpoint-url https://s3-a.c2et.net s3 ls + +aws --endpoint-url https://s3-b.c2et.net s3 mb s3://mi-bucket-b +aws --endpoint-url https://s3-b.c2et.net s3 ls +``` + +## Notas + +- Los PVC usan `WaitForFirstConsumer` a través de tus StorageClasses; el `nodeSelector` del StatefulSet garantiza + que cada volumen se cree en el **site** correcto. +- Imagen MinIO: `quay.io/minio/minio:RELEASE.2025-02-20T00-00-00Z` (ajústala a la que certifiques). +- Tamaño del PVC por defecto: `2Ti` (modifícalo a tu necesidad). \ No newline at end of file