教程:在 Visual Studio 中使用 Bridge to Kubernetes 进行本地运行和调试
在本教程中,你将了解如何重定向 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。
- Bridge to Kubernetes 扩展适用于 Visual Studio 2019 或 Bridge to Kubernetes 扩展适用于 Visual Studio 2022。
- 要进行故障排除的应用程序,例如此 TODO 应用示例应用程序。
设置服务
本教程使用 Bridge to Kubernetes 在任何 Kubernetes 群集上处理简单的 todo 示例应用程序。
该示例应用程序具有一个用于交互的前端,以及一个提供持久存储的后端。
打开 Bash 窗口并检查群集是否可用且已准备就绪。 然后将上下文设置为该群集。
kubectl cluster-info kubectl config use-context <kubernetes-cluster>
克隆示例存储库。
git clone https://github.com/Azure/Bridge-To-Kubernetes
将目录更改为 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。 在“开始”窗口中,选择“继续但无需代码”。
选择“打开”>“项目/解决方案”,然后找到 samples\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 连接到群集的方式,在本部分中,将编辑启动配置文件设置。
单击“Bridge to Kubernetes”按钮旁边的箭头,然后单击“databaseApi 调试属性”。
在“启动配置文件”对话框中,单击“为 Bridge to Kubernetes 编辑配置文件”链接。
清理资源
如果对本教程使用了示例 todo 应用,可以使用 Azure 门户将它从群集中移除。 如果在本地克隆了该存储库,可以手动删除。
后续步骤
若要详细了解 Bridge to Kubernetes,请参阅 Bridge to Kubernetes 工作原理。
有关支持的功能以及 Bridge to Kubernetes 的路线图的信息,请参阅 Bridge to Kubernetes 路线图。
若要了解如何使用 Visual Studio Code 将开发计算机连接到群集,请查看以下文章: