eliminado elemento duplicsdo en ingress.md

This commit is contained in:
2025-07-31 02:00:57 +02:00
parent f788b64cb8
commit d6667afa64

View File

@@ -1,123 +1,5 @@
## 1. Cert-Manager: Gestión automática de certificados TLS en Kubernetes ## 1. Cert-Manager: Gestión automática de certificados TLS en
## Kubernetes
[`cert-manager`](https://cert-manager.io/) es un componente esencial en entornos Kubernetes modernos. Se encarga de emitir y renovar automáticamente certificados TLS, eliminando la necesidad de gestionarlos manualmente. Esto es especialmente útil cuando los servicios se exponen a través de un Ingress Controller y se quiere TLS mediante Let's Encrypt.
### ¿Cómo funciona?
* Se integra con el API de Kubernetes.
* Usa recursos personalizados (`Issuer` y `ClusterIssuer`) para definir cómo se emitirán los certificados.
* Funciona con **ACME** (como Let's Encrypt) para obtener certificados automáticamente.
* Trabaja junto con los objetos `Ingress` para asegurar las rutas públicas de nuestros servicios.
* Puede usar solvers `http01` (habitualmente expuestos por el Ingress Controller) para verificar la propiedad del dominio.
---
## 2. Despliegue de cert-manager
### Paso 1: Crear el namespace
```yaml
# namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: cert-manager
```
```bash
kubectl apply -f namespace.yaml
```
---
### Paso 2: Instalar cert-manager desde el repositorio oficial
```bash
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml
```
Esto instalará los CRDs necesarios, así como los controladores en el namespace `cert-manager`.
---
## 3. Configurar los emisores de certificados
### Issuer vs ClusterIssuer
* `Issuer`: solo disponible en un namespace concreto.
* `ClusterIssuer`: disponible en todo el clú ster.
Aquí usamos `ClusterIssuer` para que cualquier `Ingress` de cualquier namespace pueda solicitar certificados.
### Paso 3: Crear los ClusterIssuers
```yaml
# clusterissuer-staging.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-staging
spec:
acme:
email: xavor@hotmail.es
server: https://acme-staging-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-staging
solvers:
- http01:
ingress:
ingressClassName: traefik
```
```yaml
# clusterissuer-prod.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
email: xavor@hotmail.es
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
ingressClassName: traefik
```
> ⚠️ Asegúrate de que `ingressClassName` coincida con el del Ingress Controller instalado (como `nginx`, `traefik`, `haproxy`).
```bash
kubectl apply -f clusterissuer-staging.yaml
kubectl apply -f clusterissuer-prod.yaml
```
---
## 4. Uso de kustomize para aplicar en bloque
Puedes usar `kustomize` para aplicar todo desde un solo punto:
```yaml
# kustomization.yaml
namespace: cert-manager
resources:
- clusterissuer-prod.yaml
- clusterissuer-staging.yaml
```
Y aplicarlo con:
```bash
kubectl apply -k .
```
---
## 1. Cert-Manager: Gestión automática de certificados TLS en Kubernetes
[`cert-manager`](https://cert-manager.io/) es un componente esencial en entornos Kubernetes modernos. Se encarga de emitir y renovar automáticamente certificados TLS, eliminando la necesidad de gestionarlos manualmente. Esto es especialmente útil cuando los servicios se exponen a través de un Ingress Controller y se quiere TLS mediante Let's Encrypt. [`cert-manager`](https://cert-manager.io/) es un componente esencial en entornos Kubernetes modernos. Se encarga de emitir y renovar automáticamente certificados TLS, eliminando la necesidad de gestionarlos manualmente. Esto es especialmente útil cuando los servicios se exponen a través de un Ingress Controller y se quiere TLS mediante Let's Encrypt.