Tutorial: Cómo ejecutar y depurar localmente con Bridge to Kubernetes en Visual Studio

En este tutorial, aprenderá a redirigir el tráfico entre el clúster de Kubernetes y el equipo de desarrollo. En este tutorial se usa Bridge to Kubernetes y Visual Studio para depurar un servicio. Para usar Visual Studio Code, consulte Cómo ejecutar y depurar localmente con Bridge to Kubernetes con VS Code.

Obtenga más información sobre Bridge to Kubernetes en Funcionamiento de Bridge to Kubernetes.

En este tutorial, aprenderá a:

  • Conectar al clúster con Bridge to Kubernetes
  • Enrutar las solicitudes a un servicio que se ejecuta localmente con fines de desarrollo
  • Depurar un servicio en ejecución en el equipo local

Requisitos previos

Configuración de un servicio

En este tutorial se usa Bridge to Kubernetes para trabajar con una aplicación simple de tareas pendientes en cualquier clúster de Kubernetes.

La aplicación de ejemplo tiene un front-end para interactuar y un back-end que proporciona almacenamiento persistente.

  1. Abra una ventana de Bash y compruebe que el clúster está disponible y listo. Después, establezca el contexto en ese clúster.

    kubectl cluster-info
    kubectl config use-context <kubernetes-cluster>
    
  2. Clone el repositorio de ejemplo.

    git clone https://github.com/Azure/Bridge-To-Kubernetes
    
  3. Cambie el directorio a samples/todo-app y cree un espacio de nombres para el ejemplo.

    kubectl create namespace todo-app
    
  4. Aplique el manifiesto de implementación:

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

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

    Si va a realizar pruebas con MiniKube, use minikube tunnel para resolver una dirección IP externa. Si usa AKS u otro proveedor de Kubernetes basado en la nube, se asigna automáticamente una dirección IP externa.

  5. Use el siguiente comando para supervisar el servicio frontend de forma que espere hasta que esté en funcionamiento:

    kubectl get service -n todo-app frontend --watch
    
    NAME       TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)        AGE
    frontend   LoadBalancer   10.0.245.78   10.73.226.228   80:31910/TCP   6m26s
    

Conexión al clúster

  1. Abra Visual Studio. En la ventana Comenzar, seleccione Continuar sin código.

  2. Seleccione Abrir>Project/Solution (Proyecto/Solución), busque el proyecto samples\todo-app\database-api\databaseApi.csproj y seleccione Abrir.

  3. En el proyecto, seleccione Bridge to Kubernetes en la configuración de inicio, tal y como se muestra aquí:

    Screenshot shows debugging tools with Bridge to Kubernetes selected.

  4. Seleccione el botón de inicio situado junto a Bridge to Kubernetes. En el cuadro de diálogo Create profile for Bridge to Kubernetes (Crear perfil para Bridge to Kubernetes), escriba los valores siguientes:

    • Seleccione el nombre del clúster.
    • Seleccione todo-app como su espacio de nombres.
    • Seleccione database-api para el servicio que se va a redirigir.
    • Seleccione la misma dirección URL que usó anteriormente para iniciar el explorador.

    Screenshot shows the Create profile for Bridge to Kubernetes dialog box with the values entered.

  5. Si quiere ejecutar de forma aislada, seleccione Enable routing isolation (Habilitar el aislamiento del enrutamiento). Si habilita el aislamiento del enrutamiento, los cambios que realice no afectarán a los demás usuarios que usen el clúster. El modo de aislamiento enruta sus solicitudes a la copia que usted tiene de cada servicio afectado y enruta el tráfico restante con normalidad. Para obtener más información, consulte Funcionamiento de Bridge to Kubernetes.

  6. Seleccione Save and debug (Guardar y depurar) para guardar los cambios.

    Screenshot shows the todo service displayed from your debugging, with an entry box for tasks.

    Nota:

    EndpointManager le solicitará que permita los privilegios elevados en el archivo hosts.

    El equipo de desarrollo se conecta al clúster. En la barra de estado se muestra que está conectado al servicio database-api.

    Screenshot shows the status bar that verifies that your development computer is connected.

  7. Pruebe a escribir tareas y marcarlas como completas.

  8. Seleccione Depurar>Detener depuración para detener la depuración. Puede usar un acceso directo para esta acción (Mayús+F5) o el botón Detener depuración de la barra de herramientas.

Bridge to Kubernetes redirige todo el tráfico para el servicio database-api. Redirige a la versión de la aplicación en el equipo de desarrollo. Puente a Kubernetes también enruta todo el tráfico saliente desde la aplicación al clúster de Kubernetes.

Nota

De forma predeterminada, al detener la tarea de depuración también se desconecta el equipo de desarrollo del clúster de Kubernetes. Para cambiar este comportamiento, seleccione Herramientas>Opciones y, luego, Herramientas de depuración de Kubernetes. Establezca Disconnect After Debugging (Desconectar después de la depuración) en Falso.

Screenshot shows the Disconnect After Debugging value in the Kubernetes Debugging Tools.

Una vez que se actualice esta configuración, el equipo de desarrollo permanecerá conectado cuando se detenga y se inicie la depuración. Para desconectar el equipo de desarrollo del clúster, haga clic en el botón Desconectar de la barra de herramientas.

Establecer un punto de interrupción

En esta sección, establecerá un punto de interrupción en el servicio.

  1. En el Explorador de soluciones, seleccione MongoHelper.cs para abrir el archivo en el editor. Si no ve el Explorador de soluciones, seleccione Ver>Explorador de soluciones.

  2. Coloque el cursor en la primera línea del cuerpo del método CreateTask. Después, seleccione Depurar>Alternar punto de interrupción para establecer un punto de interrupción.

    Screenshot shows the CreateTask method with a breakpoint set in the first line.

    Un acceso directo para esta acción es F9.

  3. Seleccione el botón de inicio situado junto a Bridge to Kubernetes, como hizo en la sección anterior. La depuración se inicia con los valores que especificó anteriormente.

  4. En el explorador que se abre, escriba un valor en las tareas pendientes y seleccione Entrar. El código alcanza el punto de interrupción que ha especificado. Al realizar tareas de depuración reales, puede usar las opciones de depuración para recorrer el código.

  5. Seleccione Depurar>Detener depuración para detener la depuración.

  6. Para quitar el punto de interrupción, seleccione esa línea y, luego, seleccione Depurar>Alternar punto de interrupción o presione F9.

Edición de perfil de inicio

Si necesita cambiar cómo se conecta Bridge to Kubernetes al clúster, en esta sección editará la configuración del perfil de inicio.

  1. Haga clic en la flecha situada junto al botón Bridge to Kubernetes y, a continuación, haga clic en Propiedades de depuración de databaseApi. Screenshot shows the Bridge to Kubernetes drop down menu.

  2. Haga clic en el vínculo Editar perfil para Bridge to Kubernetes en el cuadro de diálogo Perfiles de inicio. Screenshot shows Launch Profiles dialog with a link to edit the Bridge to Kubernetes profile

Limpieza de recursos

Si ha usado la aplicación de tareas pendientes de ejemplo para este tutorial, puede quitarla del clúster mediante Azure Portal. Si ha clonado ese repositorio localmente, puede eliminarlo manualmente.

Pasos siguientes

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

Para obtener información sobre las características admitidas y un plan de desarrollo para Bridge to Kubernetes, consulte el plan de desarrollo de Bridge to Kubernetes.

Para obtener información sobre cómo conectar el equipo de desarrollo a un clúster mediante Visual Studio Code, consulte este artículo: