使用 Tye 辅助开发 k8s 应用竟如此简单(一)
最近正巧在进行 Newbe.Claptrap 新版本的开发,其中使用到了 Tye 来辅助 k8s 应用的开发。该系列我们就来简单了解一下其用法。
安装 Tye
首先,确保已经正确安装了 netcore 2.1 或以上版本的 dotnet SDK。
Tye 目前还处于开发阶段,因此,目前只能安装预览版本进行使用。通过以下链接可以搜索到当前最新的版本,并复制界面上的 CLI 安装。
https://www.nuget.org/packages/Microsoft.Tye/
dotnet tool install --global Microsoft.Tye --version 0.6.0-alpha.21070.5
安装完毕后,在控制台中运行 tye,便可以查看到如下结果:
PS C:\tools\Cmder> tye
tye:
Developer tools and publishing for microservices.
Usage:
tye [options] [command]
Options:
--no-default Disable default options from environment variables
-?, -h, --help Show help and usage information
--version Show version information
Commands:
init <path> create a yaml manifest
run <path> run the application
build <path> build containers for the application
push <path> build and push application containers to registry
deploy <path> deploy the application
undeploy <path> delete deployed application
创建并运行一个测试项目
接下来我们创建一个 netcore 应用来测试该部署方案。选择 一个合适的位置运行以下命令来创建测试项目:
dotnet new sln -n TyeTest
dotnet new webapi -n TyeTest
dotnet sln .\TyeTest.sln add .\TyeTest\TyeTest.csproj
这样,我们就得到了一个测试的解决方案和 WebApi 项目。我们可以运行以下命令在本地启动这个服务:
dotnet run --project .\TyeTest\TyeTest.csproj
启动后,可以在浏览器中打开 https://localhost:5001/swagger/index.html 来查看启动好的 swagger 界面。
使用 tye 在本地运行应用
接下来,我们关闭前面正在运行的应用,改为使用 tye 在本地启动测试应用。
在解决方案目录下,使用控制台运行以下命令:
tye run
运行之后,可能会得到如下的结果:
PS C:\Repos\TyeTest> tye run
Loading Application Details...
Launching Tye Host...
[12:11:30 INF] Executing application from C:\Repos\TyeTest\TyeTest.sln
[12:11:30 INF] Dashboard running on http://127.0.0.1:8000
[12:11:30 INF] Building projects
[12:11:32 INF] Launching service tyetest_9dd91ae4-f: C:\Repos\TyeTest\TyeTest\bin\Debug\net5.0\TyeTest.exe
[12:11:32 INF] tyetest_9dd91ae4-f running on process id 24552 bound to http://localhost:14099, https://localhost:14100
[12:11:32 INF] Replica tyetest_9dd91ae4-f is moving to a ready state
[12:11:32 INF] Selected process 24552.
[12:11:33 INF] Listening for event pipe events for tyetest_9dd91ae4-f on process id 24552
按照以上的提示,在 http://127.0.0.1:8000 成功启动的 tye dashboard。使用浏览器打开 dashboard 便可以查看到已经部署起来的应用列表。如下图所示:
通过 dashboard ,可以看到测试程序已经启动,并且绑定了 http://localhost:14099 和 https://localhost:14100。实际在自行测试中,这两个端口是随机选择的,因此会有不同。
我们通过上面公开的 https 绑定打开 swagger 就能看到和前面使用dotnet run
一样的效果:https://localhost:14100/swagger