教程:在 Visual Studio 上使用 Bridge to Kubernetes 在本地运行和调试
说明
Bridge to Kubernetes 将于 2025 年 4 月 30 日停用。 有关停用和开源替代项的详细信息,请参阅 GitHub 问题。
本教程介绍如何在 Kubernetes 群集与开发计算机之间重定向流量。 本教程使用 Bridge to Kubernetes 和 Visual Studio 调试服务。 若要使用 Visual Studio Code,请参阅通过 VS Code,使用 Bridge to Kubernetes 在本地运行和调试。
若要详细了解 Bridge to Kubernetes,请参阅 Bridge to Kubernetes 的工作原理。
本教程介绍如何:
- 使用 Bridge to Kubernetes 连接到群集。
- 将请求路由到本地运行的服务以进行开发。
- 在本地计算机上调试正在运行的服务。
先决条件
- Kubernetes 群集。 您可以在 Azure 门户 中创建一个。 如果没有 Azure 订阅,可以 免费创建帐户。
- 安装在系统上的 kubectl 可执行文件。
- 在 Windows 10 或更高版本上运行的 Visual Studio 2019 版本 16.7 或更高版本或 Visual Studio 2022。
- 适用于 Visual Studio 2019 的 Bridge to Kubernetes 扩展 或适用于 Visual Studio 2022 的 Bridge to Kubernetes 扩展。
设置一个服务
本教程使用 Bridge to Kubernetes 在任何 Kubernetes 群集上处理简单的 todo 示例应用程序。
示例应用程序具有一个前端来交互,以及一个提供持久存储的后端。
打开 Bash 窗口并检查群集是否可用且已准备就绪。 然后将上下文设置为该群集。
kubectl cluster-info kubectl config use-context <kubernetes-cluster>
克隆示例存储库。
git clone https://github.com/hsubramanianaks/b2k-samples
将目录更改为 todo-app,然后为示例创建命名空间。
kubectl create namespace todo-app
应用部署清单:
kubectl apply -n todo-app -f deployment.yaml
此简单部署使用
LoadBalancer
类型的服务公开前端。 等待所有 pod 都处于运行状态,以及frontend
服务的外部 IP 变为可用。如果要使用 MiniKube 进行测试,请使用
minikube tunnel
解析外部 IP。 如果使用 AKS 或其他基于云的 Kubernetes 提供程序,则会自动分配外部 IP。使用以下命令监视
frontend
服务,直到服务启动并运行: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
连接到群集
打开 Visual Studio。 在“开始”窗口中,选择“继续但无需代码”。
选择 打开>项目/解决方案,找到 todo-app\database-api\databaseApi.csproj 项目,然后选择 打开。
在项目中,从启动设置中选择 Bridge to Kubernetes,如下所示:
选择 Bridge to Kubernetes旁边的“开始”按钮。 在“为 Bridge to Kubernetes 创建配置文件 对话框中,输入以下值:
- 选择群集名称。
- 选择“todo-app”作为命名空间。
- 选择“database-api”作为要重定向到的“服务”。
- 选择之前用于启动浏览器的同一 URL。
如果要运行隔离,请选择 启用路由隔离。 如果启用路由隔离,则使用群集的其他人不会受到更改的影响。 隔离模式会将您的请求路由到每个受影响服务的专属副本。 它通常会路由其他流量。 有关详细信息,请参阅 Bridge to Kubernetes 工作原理。
选择“保存和调试”以保存更改。
注意
EndpointManager 会提示你允许对主机文件使用提升的权限。
您的开发计算机连接到群集。 状态栏显示已连接到
database-api
服务。尝试输入任务并将其标记为已完成。
选择 调试>停止调试 以停止调试。 此操作的快捷方式是 Shift+F5 或使用工具栏中的 停止调试 按钮。
Bridge to Kubernetes 会重定向 database-api 服务的所有流量。 它会重定向到开发计算机上的应用程序版本。 Bridge to Kubernetes 还会将应用程序的所有外部流量路由回 Kubernetes 群集。
注
默认情况下,停止调试任务也会断开开发计算机与 Kubernetes 群集的连接。 若要更改此行为,请选择 工具>选项,然后选择 Kubernetes 调试工具。 将“调试后断开连接”设置为 False。
更新此设置后,在停止和启动调试时,开发计算机将保持连接状态。 若要断开开发计算机与群集的连接,请单击工具栏上的“断开连接”按钮。
设置断点
在本节中,您将在服务中设置断点。
在 解决方案资源管理器中,选择 MongoHelper.cs 在编辑器中打开该文件。 如果未看到解决方案资源管理器,请选择“视图”>“解决方案资源管理器”。
在 CreateTask 方法正文的第一行上设置光标。 然后选择“调试”>“切换断点”以设置断点。
此操作的快捷方式是 F9。
选择 Bridge to Kubernetes旁边的“开始”按钮,如上一部分所示。 调试从之前输入的值开始。
在打开的浏览器中,在“todos”中输入值,然后选择 Enter。 代码到达输入的断点。 执行实际调试任务时,可以使用调试选项逐步检查代码。
选择 调试>停止调试 以停止调试。
若要删除断点,请选择该行,然后选择 调试>切换断点 或选择 F9。
编辑启动配置文件
如果需要更改 Bridge to Kubernetes 连接到群集的方式,在本部分中,将编辑启动配置文件设置。
在 Visual Studio 命令栏中,单击“开始”按钮旁的箭头(绿色三角形或“播放”图标),打开下拉列表,然后单击 databaseApi 调试属性。
在“启动配置文件”对话框中,单击“为 Bridge to Kubernetes 编辑配置文件”链接。
访问此屏幕的另一种方法:
右键单击解决方案资源管理器中的项目节点,然后选择 属性(或按 Alt +Enter)。
向下滚动到“调试”,然后选择“打开调试启动配置文件 UI”。
清理资源
如果使用本教程的示例待办应用,可以使用 Azure 门户将其从群集中删除。 如果在本地克隆了该存储库,可以手动删除它。
后续步骤
若要详细了解 Bridge to Kubernetes,请参阅 Bridge to Kubernetes 工作原理。
若要了解如何使用 Visual Studio Code 将开发计算机连接到群集,请参阅以下文章: