eliminado elemento duplicsdo en ingress.md
This commit is contained in:
122
ingress.md
122
ingress.md
@@ -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.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user