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
- Un clúster de Kubernetes. Puede crear uno en Azure Portal. Si no tiene una suscripción de Azure, puede crear una cuenta gratuita.
- El archivo ejecutable kubectl instalado en el sistema.
- Visual Studio 2019, versión 16.7 o posterior ejecutándose en Windows 10 o versiones posteriores o Visual Studio 2022.
- La extensión Bridge to Kubernetes para Visual Studio 2019 o Bridge to Kubernetes para Visual Studio 2022.
- Una aplicación para solucionar problemas, como esta aplicación de ejemplo de tareas pendientes.
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.
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>
Clone el repositorio de ejemplo.
git clone https://github.com/Azure/Bridge-To-Kubernetes
Cambie el directorio a samples/todo-app y cree un espacio de nombres para el ejemplo.
kubectl create namespace todo-app
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 serviciofrontend
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.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
Abra Visual Studio. En la ventana Comenzar, seleccione Continuar sin código.
Seleccione Abrir>Project/Solution (Proyecto/Solución), busque el proyecto samples\todo-app\database-api\databaseApi.csproj y seleccione Abrir.
En el proyecto, seleccione Bridge to Kubernetes en la configuración de inicio, tal y como se muestra aquí:
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.
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.
Seleccione Save and debug (Guardar y depurar) para guardar los cambios.
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
.Pruebe a escribir tareas y marcarlas como completas.
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.
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.
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.
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.
Un acceso directo para esta acción es F9.
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.
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.
Seleccione Depurar>Detener depuración para detener la depuración.
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.
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.
Haga clic en el vínculo Editar perfil para Bridge to Kubernetes en el cuadro de diálogo Perfiles de inicio.
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: