¿Sabes cuál es el registro de entrada de Get Kubernetes para la depuración?? Los problemas de redes son cada vez más difíciles de diagnosticar a medida que los despliegues crecen cada vez más. Este tutorial le muestra cómo usar el complemento Ingress-Nginx Kubectl para depurar el acceso a su aplicación a través del controlador Ingress. Primero veamos la definición de entrada de Kubernetes, que es importante comprender mejor el tema principal.
¿Qué es Kubernetes Ingress?
La definición de entrada es "entrada" en su sentido literal.
En la comunidad de Kubernetes, eso también es cierto. Un tráfico que ingresa al clúster se conoce como ingreso, mientras que un tráfico que deja el clúster se conoce como salida.
Como recurso nativo de Kubernetes, Ingress es comparable a las cápsulas, implementaciones, etc. Puede mantenerse al día con las configuraciones de enrutamiento DNS utilizando Ingress. El controlador de ingreso es lo que realiza el enrutamiento. Lo hace leyendo las reglas de enrutamiento directamente desde los objetos de entrada que se almacenan en ETCD. Sin Kubernetes Ingress, puede exponer una aplicación al mundo exterior al incluir un equilibrador de carga de tipo de servicio en las implementaciones.
¿Cómo funciona Kubernetes Ingress?
Hay dos cosas clave sobre las que debes tener claro. Estos son:
Recurso de entrada de Kubernetes
Este recurso está a cargo de mantener todas las reglas de enrutamiento de DNS en el clúster. Las reglas de enrutamiento DNS se especifican en el recurso de entrada de Kubernetes, un recurso nativo de Kubernetes. En otras palabras, asigna el tráfico DNS externo a los destinos de servicio internos de Kubernetes.
Controlador de entrada de Kubernetes
Al obtener acceso a las reglas DNS implementadas por los recursos de ingreso, los controladores de entrada Kubernetes (Nginx/HaProxy, etc.) están a cargo del enrutamiento.
La implementación del controlador de ingreso no es nativa de Kubernetes. Como resultado, no puede ser un clúster predeterminado.
Para que las reglas de ingreso funcionen, debemos configurar un controlador de ingreso. Hay muchos controladores de ingreso de código abierto y de entrada en el mercado. La versión de un clúster de un servidor proxy web inverso sirve como controlador de ingreso. Este servidor proxy inverso basado en Kubernetes está expuesto a un servicio de equilibrio de carga.
¿Qué es el controlador de ingreso??
Un programa de carrera de clúster llamado Ingress Controller configura un equilibrador de carga HTTP siguiendo los recursos de ingreso. El equilibrador de carga puede ser un hardware implementado externamente o un equilibrador de carga en la nube, o puede funcionar como software dentro del clúster. Se necesitan diferentes implementaciones de controladores de ingreso para varios equilibradores de carga.
Al usar NGINX, el equilibrador de carga y el controlador de ingreso se despliegan en una cápsula.
Tenga en cuenta que un controlador de ingreso activo debe estar presente en el clúster para que funcione el recurso de ingreso.
Los controladores de ingreso no se lanzan automáticamente con un clúster, en contraste con los otros tipos de controladores que funcionan como un componente del binario Kube-Controller-Manager.
Prerrequisitos:
Necesita un clúster Kubernetes y debe configurar la herramienta de línea de comandos Kubectl para conectarse con su clúster. Puede emitir los comandos a los clústeres de Kubernetes utilizando la herramienta de línea de comandos Kubectl. Las aplicaciones se pueden implementar, los recursos del clúster se pueden inspeccionar y administrar, y los registros se pueden ver utilizando Kubectl.
Si actualmente no tiene un clúster, Minikube se puede usar para construir uno. Minikube es un Kubernetes local que tiene como objetivo simplificar el aprendizaje y el desarrollo de Kubernetes.
Se puede acceder a Kubernetes con solo un comando si tiene un entorno de máquina virtual o un entorno de contenedor Docker (o igualmente compatible). Comencemos el proceso paso a paso ahora:
Paso 1: Comience el minikube
Usando la herramienta Minikube, puede ejecutar los Kubernetes localmente. Minikube ejecuta un clúster de Kubernetes local todo en uno o de nodos múltiples en su computadora para el trabajo de desarrollo diario o para probar los Kubernetes (incluyendo Windows, PC Linux y macOS). Aquí está el comando para comenzar el minikube:
> Minikube Start
Paso 2: Habilite el controlador de ingreso
Demostraremos cómo activar el controlador de entrada Nginx en este paso. Realizar el siguiente comando:
> Los complementos de Minikube habilitan la entrada
Paso 3: Verifique si el controlador de entrada Nginx está funcionando o no
Ahora, es importante verificar si el controlador NGINX está activo o no. El comando que sigue se puede usar para confirmar que:
> Kubectl Get PODS -N Ingress -Nginx
Tenga en cuenta que es posible que no tenga en cuenta que estas vainas funcionan correctamente por hasta un minuto. La salida se muestra en la imagen anterior.
Paso 4: Crea una aplicación Hello World
Aquí, usamos el siguiente comando para crear una implementación:
> Kubectl Crear implementación web --image = GCR.io/google-samples/hello-app: 1.0
El comando que se ejecuta y sus resultados se adjuntan en la imagen anterior. En la salida, se puede ver "Hello-App".
Paso 5: Exponga el despliegue
Ahora, le mostraremos un comando para exponer una implementación específica. El comando se menciona de la siguiente manera:
> Kubectl Exponer la implementación Kalsoom --type = nodeport --port = 8080
Puede ver la salida "Servicio/Kalsoom expuesto" en la imagen anterior.
Paso 6: Visite el servicio a través de Nodeport
Este es un paso importante en el que le mostramos cómo puede visitar el servicio creado a través del nodeport. El comando para lograr este propósito se da en lo siguiente:
> Minikube Service Kalsoom --Url
El comando junto con la salida se adjunta en la imagen anterior.
Ahora, la dirección IP de Minikube y Nodeport hacen que sea simple ver la aplicación de muestra. Puede usar el recurso de entrada para acceder a la aplicación en el siguiente paso.
Paso 7: crear un ingreso
Aquí, creamos una entrada que transmite el tráfico a su servicio. El comando se menciona de la siguiente manera:
> kubectl aplicar -f https: // k8s.io/ejemplos/servicio/networking/ejemplo.yaml
Como puede ver, el comando se ejecuta correctamente.
Paso 8: Verifique la dirección IP
Verificamos si la dirección IP está configurada o no. Para eso, usamos el siguiente comando dado:
> kubectl entra entrada
En la salida, debería ver una dirección IPv4 en la columna de dirección.
Conclusión
En este artículo se proporciona una descripción general del registro del controlador de entrada de Nginx. Para resumir, los registros de acceso y error para NGINX junto con los registros del proceso del controlador de ingreso que crea la configuración de Nginx y las recargas NGINX para aplicarlo, están disponibles por el controlador de entrada Nginx.