Compartir a través de


Uso de Bridge to Kubernetes con AKS

Nota

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

En este tutorial, usará una aplicación web de microservicios de ejemplo de AKS específica para aprender a usar Bridge to Kubernetes para depurar localmente en un único pod que forma parte de un clúster de Azure Kubernetes Service (AKS).

Antes de empezar

En esta guía se usa la aplicación de ejemplo Todo App para demostrar cómo conectar el equipo de desarrollo a un clúster de Kubernetes que se ejecuta en AKS. Si ya tiene su propia aplicación que se ejecuta en un clúster de Kubernetes, consulte Desarrollo con Kubernetes. Si usa otro clúster, como MiniKube que se ejecuta localmente, consulte Uso de Bridge to Kubernetes con un ejemplo.

Prerrequisitos

Creación de un clúster de Kubernetes

Cree un clúster de AKS en una región admitida. Los comandos siguientes crean un grupo de recursos denominado MyResourceGroup y un clúster de AKS denominado MyAKS.

az group create \
    --name MyResourceGroup \
        --location eastus
az aks create \
    --resource-group MyResourceGroup \
    --name MyAKS \
    --location eastus \
    --node-count 3 \
    --generate-ssh-keys

Instalación de la aplicación de ejemplo

Descarga del código e instalación de dependencias

git clone https://github.com/hsubramanianaks/b2k-samples
cd b2k-samples/todo-app
npm install stats-api\

Conexión al clúster e implementación de la aplicación

En el equipo de desarrollo, descargue y configure la CLI de Kubernetes para conectarse al clúster de Kubernetes mediante az aks get-credentials.

az aks get-credentials --resource-group MyResourceGroup --name MyAKS
kubectl create namespace todo-app
kubectl config set-context --current --namespace=todo-app
kubectl apply -f deployment.yaml --namespace todo-app

Prueba de la aplicación

En el mismo terminal que estaba usando anteriormente, ejecute el siguiente comando y copie la dirección IP para el servicio front-end en la columna DIRECCIÓN IP externa.

kubectl get services

Para probar la aplicación, abra la dirección URL: {your external IP from above command goes here}.nip.io

Depurar el servicio stats-api

En el mismo terminal que estaba usando anteriormente, escriba el siguiente comando para abrir stats-api en VS Code.

code ./stats-api

En primer lugar, coloque un punto de interrupción en la línea 17 de server.js.

A continuación, asegúrese de que el espacio de nombres todo-app en el clúster de MyAKS esté establecido como predeterminado (si tiene * junto a él). Si no está establecido como predeterminado, haga clic con el botón derecho en el nodo todo-app y elija Usar espacio de nombres.

Captura de pantalla que muestra el espacio de nombres de Bridge to Kubernetes.

A continuación, configure bridge: 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).

Captura de pantalla que muestra la ventana de comandos Bridge to Kubernetes Configure.

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.

Captura de pantalla en la que se muestra la selección del servicio al que conectarse.

Importante

Solo puede redirigir los servicios que tienen un único pod.

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

Captura de pantalla que muestra la ventana para introducir el número de puerto.

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

Recorte de pantalla que muestra la ventana elegir la tarea iniciar el depurador.

Tiene la opción de ejecutar en modo aislado o no aislado. 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, se continúa en modo no aislado. Si eligió el aislamiento, task.json tiene el prefijo que debe usar para enrutar la solicitud a la máquina.

Captura de pantalla que muestra la ventana elegir opción de aislamiento.

Nota

En los inicios posteriores, simplemente hará clic en el icono de depuración sin pasar por esta configuración y se le pedirá el nombre del servicio, el puerto, la tarea de inicio o si se va a ejecutar aislado. Estos valores se guardan en .vscode/tasks.json. Para cambiar estas opciones más adelante, abra la paleta de comandos (CTRL+MAYÚS+P o Cmd+Mayús+P en un equipo Mac) y ejecute el comando Bridge to Kubernetes: Configure.

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

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

Recorte de pantalla que muestra la ventana elegir el perfil de inicio de depuración.

Nota

Se le pedirá que permita que EndpointManager se ejecute con privilegios elevados y modifique el archivo de hosts.

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.

Recorte de pantalla que muestra la ventana elegir la depuración con Puente a Kubernetes.

Vaya al punto de entrada frontal de la aplicación a través de la dirección IP externa que encontró anteriormente, {your external IP from get services command}.nip.io. Tenga en cuenta que si seleccionó el modo de aislamiento, debe usar {your prefix - can be found in task.json}.{your external IP from get services command}.nip.io.

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

Recorte de pantalla que muestra la opción del 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.

Limpieza

Al detener el depurador, se revierten todos los cambios en el clúster. Tenga en cuenta que, si se estaba ejecutando con aislamiento, el pod del administrador de enrutamiento se dejará allí para acelerar el inicio del depurador la próxima vez.

Puede dejar el clúster de AKS activo para la depuración futura o puede eliminarlo usando el siguiente comando.

az aks delete --name MyAKS --resource-group MyResourceGroup

Pasos siguientes

Obtenga más información sobre Bridge to Kubernetes en Cómo funciona Bridge to Kubernetes.