Este tutorial te guiará a través del proceso de registro de nombres de dominio en DNS para los endpoints expuestos con NGINX. Esto incluye cómo declarar los servicios en Kubernetes, obtener la dirección IP de NGINX Ingress, y registrar los dominios con el proveedor de DNS.
El primer paso es declarar los servicios que deseas exponer a través de NGINX Ingress. Aquí tienes un ejemplo de un servicio básico:
apiVersion: v1
kind: Service
metadata:
name: example-service
namespace: default
spec:
ports:
- port: 80
targetPort: 8080
selector:
app: example-app
type: ClusterIP
Este servicio expone la aplicación example-app
internamente en el clúster de Kubernetes. Ahora configuraremos un **Ingress** para exponer este servicio a través de NGINX.
Declara un Ingress para exponer el servicio a través de NGINX. Aquí tienes un ejemplo de un manifiesto de Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- example.dominio.com
secretName: example-tls
rules:
- host: example.dominio.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
Este manifiesto de Ingress expone el servicio example-service
en el dominio example.dominio.com
. También utiliza un secreto TLS llamado example-tls
para habilitar HTTPS.
Después de aplicar el Ingress, necesitas obtener la dirección IP pública del controlador NGINX. Usa el siguiente comando para ver la IP pública asignada:
kubectl get services -o wide -w -n ingress-nginx
Este comando mostrará los servicios de NGINX Ingress. La dirección IP externa aparecerá bajo la columna EXTERNAL-IP
. Esta IP es la que utilizarás para configurar tus registros DNS.
Una vez que tengas la IP pública de NGINX Ingress, necesitas registrar los nombres de dominio en tu proveedor de DNS. A continuación se explica cómo hacerlo:
En el panel de control de tu proveedor de DNS (por ejemplo, Cloudflare, AWS Route 53, Google Domains, etc.), crea un nuevo registro tipo A
que apunte el nombre de dominio al IP de NGINX.
example.dominio.com
A
Este registro apunta el dominio example.dominio.com
a la IP pública del servicio NGINX.
Una vez que hayas creado el registro DNS, puede tardar unos minutos (o hasta 24 horas en algunos casos) para que los cambios se propaguen a nivel mundial. Puedes verificar la propagación del DNS utilizando herramientas como:
Una vez que la propagación del DNS se haya completado, puedes verificar que tu dominio está apuntando correctamente a la IP de NGINX usando un comando como:
nslookup example.dominio.com
Deberías ver la IP pública que configuraste en los registros DNS.
Finalmente, puedes acceder a tus servicios expuestos a través del dominio que configuraste:
https://example.dominio.com
Esto debería redirigirte al servicio configurado en el Ingress, protegiendo tu tráfico con TLS si configuraste un secreto SSL en Kubernetes.