Compartir a través de


Uso de Bridge to Kubernetes con un ejemplo

Nota

Bridge to Kubernetes se retirará el 30 de abril de 2025. Para obtener más información sobre las alternativas al retiro y al código abierto, consulte los problemas yen GitHub.

En este ejemplo se muestra cómo se puede usar Bridge to Kubernetes para desarrollar una versión basada en microservicios de una aplicación TODO sencilla en cualquier clúster de Kubernetes. Este ejemplo, con Visual Studio Code, se ha adaptado del código proporcionado por TodoMVC. En este ejemplo, se usa MiniKube para hospedar la aplicación, pero estos pasos deben funcionar con cualquier clúster de Kubernetes.

El ejemplo de aplicación TODO se compone de un front-end y un back-end que proporciona almacenamiento persistente. Este ejemplo extendido agrega un componente de estadísticas y divide la aplicación en una serie de microservicios, en concreto:

  • El front-end llama a la API de base de datos para conservar y actualizar los elementos de TODO.
  • El servicio database-api se basa en una base de datos de Mongo para conservar elementos TODO;
  • El front-end escribe eventos de adición, finalización y eliminación en una cola RabbitMQ;
  • Un trabajador de estadísticas recibe eventos de la cola RabbitMQ y actualiza una caché de Redis;
  • Una API de estadísticas expone las estadísticas almacenadas en caché para que se muestre el front-end.

En todo, esta aplicación de tareas pendientes extendida se compone de seis componentes relacionados entre sí.

Prerrequisitos

  • Cualquier clúster de Kubernetes o el administrador de paquetes Chocolatey para instalar MiniKube
  • En Windows 10, Hyper-V
  • Kubectl instalado y en la ruta de acceso en un entorno de línea de comandos de su elección
  • La extensión de Visual Studio Code Bridge to Kubernetes

Instalación de MiniKube

Puede usar cualquier proveedor de Kubernetes con Bridge to Kubernetes. En este artículo, usamos MiniKube. MiniKube es un proveedor ligero de Kubernetes que le permite hospedar Kubernetes en la máquina local. Siga las instrucciones de instalación de para instalar MiniKube en Windows 10, Linux o macOS.

Para obtener los mejores resultados en Windows 10, debe usar el administrador de máquinas virtuales de Hyper-V y crear un conmutador virtual .

Una vez instalado, inicie MiniKube, especifique para usar Hyper-V y proporcione el nombre del conmutador virtual principal. Este comando debe ejecutarse desde una ventana de comandos con privilegios de administrador.

minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"

Implementación de la aplicación

Clone el repositorio Bridge to Kubernetes y abra una ventana de comandos con la carpeta de trabajo actual en todo-app.

Cree un espacio de nombres para el ejemplo.

kubectl create namespace todo-app

A continuación, aplique el manifiesto de implementación:

kubectl apply -n todo-app -f deployment.yaml

Se trata de una implementación sencilla que expone el front-end mediante un servicio de tipo LoadBalancer. Espere a que todos los pods se ejecuten y que la dirección IP externa del servicio frontend esté disponible.

Si está probando con MiniKube, debe usar minikube tunnel para resolver una dirección IP externa.

kubectl get services -n todo-app

NAME          TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
frontend      LoadBalancer   10.0.49.177    127.0.0.1   80:30145/TCP   18h

Vaya a la aplicación mediante la dirección IP externa y el puerto local (el primer número de la columna de puertos).

http://{external-ip}:{local-port}

Pruebe la aplicación en ejecución en el explorador. Al agregar, completar y eliminar elementos de tareas pendientes, observe que la página de estadísticas se actualiza con las métricas esperadas.

Depuración del servicio stats-api

Ahora puede usar la extensión Bridge to Kubernetes para demostrar cómo se puede redirigir el tráfico desde el clúster de Kubernetes a una versión en ejecución local de stats-api.

cd stats-api/

Abra el código fuente de stats-api en VS Code.

code .

Una vez iniciado VS Code, abra el panel de Kubernetes desde la barra lateral izquierda de VS Code y, a continuación, seleccione el espacio de nombres todo-app en el clúster de MiniKube. Haga clic con el botón derecho en el nodo todo-app y elija Use Namespace (Usar espacio de nombres).

Seleccionar el espacio de nombres

Instale las dependencias ejecutando npm install en una ventana de terminal (CTRL + ~).

npm install

A continuación, coloque un punto de interrupción en la línea 17 de server.js.

Abra la paleta de comandos (CTRL+MAYÚS+P o Cmd+Mayús+P en un equipo Mac) y escriba Bridge to Kubernetes. Seleccione la opción Bridge to Kubernetes: Configure (Puente de a Kubernetes: configuración de).

Puente a Kubernetes: configuración del comando

Se le pedirá que configure el servicio que desea reemplazar, el puerto para reenviar desde el equipo de desarrollo y la tarea de inicio que se va a usar.

Elija el servicio stats-api.

Seleccione el servicio para conectarse a

Después de seleccionar el servicio, se le pedirá que escriba el puerto TCP de la aplicación local. En este ejemplo, escriba 3001.

Escriba el número de puerto

Elija Run Script: dev (Ejecutar script: dev) como tarea de inicio.

Elegir la tarea de inicio del depurador

Tiene la opción de funcionar de manera aislada o no aislada. Si ejecuta con aislamiento, solo sus solicitudes se enrutan a su proceso local. Otros desarrolladores pueden usar el clúster sin verse afectados. Si no ejecuta con aislamiento, todo el tráfico se redirige al proceso local. Para obtener más información sobre esta opción, consulte Uso de funcionalidades de enrutamiento para desarrollar de forma aislada. En este ejemplo, vamos a usar nonisolated.

Elija el aislamiento de aislamiento

Nota

VS Code le pide que permita que EndpointManager se ejecute con privilegios elevados y modifique el archivo de hosts.

El perfil de depuración de Bridge to Kubernetes se ha configurado correctamente.

Seleccione el icono Depurar de la izquierda y seleccione Run Script: dev with Kubernetes (Ejecutar script: dev con Kubernetes). Haga clic en el botón Inicio situado junto a Run Script: dev with Kubernetes (Ejecutar script: dev con Kubernetes).

Elegir el perfil de inicio de depuración

El equipo de desarrollo está conectado cuando la barra de estado de VS Code se vuelve naranja y la extensión de Kubernetes muestra que está conectado. Una vez que el equipo de desarrollo está conectado, el tráfico comienza a redirigirse a ese equipo para el elemento stats-api que va a reemplazar.

Depuración de Depuración con Bridge to Kubernetes

Vaya al punto de entrada de front-end de todo-app. Para minikube, usaremos 127.0.0.1. Para acceder a la dirección URL del punto de conexión local de la aplicación, abra el menú de Kubernetes en la barra de estado y elija la entrada del punto de conexión.

Realice una solicitud a stats-api eligiendo el vínculo stats.

sitio web en ejecución: elija el vínculo de estado

Observe que el tráfico que se inició inicialmente en el clúster se redirigió a la versión en ejecución local (fuera del clúster) donde se desencadenó el punto de interrupción.

Presione Reproducir y deje que la solicitud continúe hasta que se complete de forma transparente.

Este ejemplo es solo una ilustración de cómo usar Bridge to Kubernetes en clústeres que no son de AKS. Pruébelo en su propio proyecto a continuación.

Limpieza

Para limpiar los recursos generados por este ejemplo, ejecute:

kubectl delete namespace todo-app

Pasos siguientes

También puede implementar la aplicación en Azure Kubernetes Service (AKS) con Bridge to Kubernetes. Consulte Uso de Bridge to Kubernetes con AKS