Ingress Class en Kubernetes

En Kubernetes, un Ingress es un recurso que gestiona el acceso externo a los servicios dentro del clúster. Permite el enrutamiento del tráfico HTTP y HTTPS desde fuera del clúster hacia los servicios dentro del clúster.
Una clase de Ingress, o «Ingress class», es una forma de especificar qué controlador de Ingress debe utilizarse para gestionar un recurso de Ingress específico. Esto es útil en entornos donde hay múltiples controladores de Ingress disponibles y quieres dirigir el tráfico a un controlador particular.
Al definir un recurso de Ingress, puedes especificar la clase de Ingress que deseas utilizar. Si no se especifica ninguna clase de Ingress, se utiliza la clase predeterminada. Sin embargo, si se especifica una clase de Ingress, el controlador correspondiente a esa clase será el encargado de gestionar el tráfico para ese recurso de Ingress.
Esto permite tener flexibilidad y modularidad en la configuración del enrutamiento del tráfico dentro del clúster, ya que puedes utilizar diferentes controladores de Ingress según tus necesidades específicas, como balanceo de carga, políticas de seguridad, o características específicas del entorno.
En Kubernetes, un Ingress Class es una forma de especificar la clase a la que pertenece un recurso Ingress. El recurso Ingress se utiliza para exponer servicios HTTP y HTTPS externamente en el clúster Kubernetes. Sin embargo, en un entorno Kubernetes, puede haber múltiples controladores de Ingress que gestionan diferentes configuraciones y políticas.
La introducción de Ingress Class en Kubernetes v1.18 proporciona una forma de asignar un recurso Ingress a un controlador de Ingress específico. Cada controlador de Ingress puede tener su propia implementación y configuración, y la clase de Ingress es una forma de indicar qué controlador debe manejar un recurso Ingress en particular.
Al definir un recurso Ingress, puedes especificar la clase de Ingress mediante el campo ingressClassName. Aquí hay un ejemplo simple de cómo se podría especificar una clase de Ingress en un recurso Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: mi-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: ejemplo.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: mi-servicio
port:
number: 80En este ejemplo, el campo kubernetes.io/ingress.class indica que este Ingress debe ser manejado por el controlador de Ingress con la clase «nginx». Esto permite que diferentes controladores de Ingress en el clúster gestionen diferentes conjuntos de reglas y configuraciones.
Tipos de Ingress Class
En Kubernetes, hay varios tipos de Ingress que se pueden utilizar dependiendo de las necesidades específicas de enrutamiento de tráfico y configuración de tu aplicación. Aquí están algunos tipos comunes:
- Ingress básico: Este es el tipo más común de Ingress y se utiliza para enrutar el tráfico HTTP y HTTPS a servicios dentro del clúster basándose en reglas definidas en el recurso Ingress.
- Ingress con SSL/TLS: Este tipo de Ingress te permite habilitar el cifrado SSL/TLS para asegurar las comunicaciones entre el cliente y el servidor. Puedes configurar certificados SSL/TLS en el recurso Ingress para habilitar HTTPS.
- Ingress con balanceo de carga: Algunos controladores de Ingress ofrecen características avanzadas de balanceo de carga, lo que te permite distribuir el tráfico entre varios pods de un servicio para mejorar la disponibilidad y la escalabilidad.
- Ingress con reglas de ruta: Con este tipo de Ingress, puedes definir reglas de enrutamiento basadas en la ruta de la URL. Esto te permite dirigir diferentes solicitudes HTTP a diferentes servicios basados en la ruta solicitada.
- Ingress con autenticación: Algunos controladores de Ingress admiten la autenticación de solicitud, lo que te permite proteger tus servicios mediante autenticación basada en tokens, certificados u otros métodos de autenticación.
- Ingress con redirecciones: Puedes configurar Ingress para redireccionar el tráfico de ciertas URL a otras URL, por ejemplo, para redirigir solicitudes HTTP a HTTPS o para redirigir solicitudes de una URL antigua a una nueva.
Estos son solo algunos ejemplos de los tipos de Ingress disponibles en Kubernetes. La elección del tipo de Ingress dependerá de los requisitos específicos de tu aplicación y del controlador de Ingress que estés utilizando en tu clúster.
