Steeltoe Samples 云部署指南:Cloud Foundry 与 Kubernetes 双平台实战教程
【免费下载链接】SamplesSteeltoe samples and reference application collection项目地址: https://gitcode.com/gh_mirrors/samples40/Samples
Steeltoe Samples 是微软 .NET 开发者上手云原生开发的终极实战参考库,它汇集了配置中心、服务发现、数据库连接、安全认证等全套示例代码。本文将带你快速掌握如何把 Steeltoe Samples 项目同时部署到 Cloud Foundry 与 Kubernetes 两大主流云平台,从清单文件解析到一键推送命令,一步步完成你的云部署实战教程。
为什么选择 Steeltoe Samples 学习云部署
Steeltoe Samples 仓库不是简单的代码堆砌,而是围绕 .NET 微服务完整生命周期精心组织的参考应用集合,每个示例都自带双平台部署配置,是新手理解"一次编写、处处部署"的最佳教材。
仓库顶层按功能划分为六大模块(见 README.md):
| 模块目录 | 核心能力 |
|---|---|
| Configuration | Spring Cloud Config Server 等配置提供程序 |
| Discovery | 基于 Consul、Eureka 的服务注册与发现 |
| Management | 管理与监控端点、分布式追踪 |
| Connectors | 连接 MySQL、Redis、RabbitMQ 等云服务 |
| FileShares | 对接 Windows SMB 网络文件共享 |
| Security | 认证授权与 Redis 数据保护 |
其中 Connectors/README.md 还贴心地给出了每个连接器在 Cloud Foundry 与 Kubernetes 上的运行说明,新手可以按图索骥。
双平台部署核心:看懂 manifest.yml 与 workload.yaml
Steeltoe Samples 的巧妙之处在于每个示例都同时提供了两套部署清单:面向 Cloud Foundry 的manifest.yml与面向 Kubernetes(Tanzu)的workload.yaml。两者表达的是同一份部署意图,只是语法不同。
Cloud Foundry 清单:manifest.yml 快速上手
以 MySql 示例的 manifest.yml 为例,核心配置只有几个字段:
name:应用名,Cloud Foundry 内唯一标识buildpacks:指定dotnet_core_buildpack,自动完成 .NET 运行时安装memory:内存配额,示例通常 256M 即可services:绑定已创建的云服务实例(如sampleMySqlService)random-route:自动生成随机路由,避免域名冲突
配置中心的示例(manifest.yml)还通过env注入ASPNETCORE_ENVIRONMENT等环境变量,实现配置仓库按环境切换。
Kubernetes 清单:workload.yaml 解析
Kubernetes 侧使用 workload.yaml 定义 Workload 资源:
kind: Workload:Tanzu Application Platform 的应用抽象serviceClaims:通过 ClassClaim 声明式绑定数据库服务source.git:直接指定源码仓库与分支,实现源码到运行的一体化交付env:注入构建与运行时的环境变量
Cloud Foundry 一键部署步骤:最快配置方法
1. 推送前的准备
使用 Cloud Foundry 部署前,需要安装 .NET SDK 与 CF CLI,并确保环境中有可用的云服务实例。克隆示例仓库:
git clone https://gitcode.com/gh_mirrors/samples40/Samples2. 登录并推送应用
按照 ConfigurationProviders 的 README 中的步骤,先登录组织与空间:
cf target -o your-org -s your-space然后直接基于清单推送:
cf push -f manifest.ymlCloud Foundry 会自动识别dotnet_core_buildpack,完成编译、打包与发布全流程,无需本地构建。
3. Windows 环境特殊处理
若目标是 Windows 容器(如 manifest-windows.yml),需要先本地发布再推送二进制:
dotnet publish -r win-x64 --self-contained cf push -f manifest-windows.yml -p bin/Release/net10.0/win-x64/publishKubernetes 部署实战:Tanzu 工作负载创建方法
1. 准备配置服务资源
在 Kubernetes 上部署配置类示例前,先创建配置源等资源对象(目录见 application-configuration-service):
kubectl apply -f ./config/application-configuration-service2. 从源码创建工作负载
使用 Tanzu CLI 一键创建 Workload:
tanzu app workload apply --local-path . --file ./config/workload.yaml -y3. 从本地二进制部署
也可以先发布 linux-x64 二进制再推送,速度更快、更可控:
dotnet publish -r linux-x64 --no-self-contained tanzu app workload apply --local-path ./bin/Release/net10.0/linux-x64/publish --file ./config/workload.yaml -y验证部署成果:用 Behave 测试守护质量
Steeltoe Samples 还贴心地提供了行为测试用例,例如 linux.feature 会用 Behave 自动验证:推送应用后访问首页,页面应出现 "Row1 Text" 等预期内容。这让你的云部署不只是"推上去就行",而是可验证、可回归的工程实践。
常见问题排查清单
| 现象 | 排查思路 |
|---|---|
| 应用启动失败 | 检查manifest.yml中memory是否过小 |
| 连不上数据库 | 确认services绑定的实例名与云服务实际名称一致 |
| Kubernetes 拉取源码失败 | 检查workload.yaml的source.git分支是否正确 |
| 路由冲突 | 开启random-route: true或手动指定唯一路由 |
总结:从 Samples 到生产部署的完整路径
通过本文的 Steeltoe Samples 云部署指南,你已经掌握了双平台部署的核心方法论:用manifest.yml应对 Cloud Foundry 的快速交付,用workload.yaml拥抱 Kubernetes 的声明式编排。接下来只需动手实践 Configuration、Discovery、Connectors 等模块的示例,即可把这份经验迁移到自己的生产项目。云原生之路,就从部署第一个 Steeltoe 示例开始!
【免费下载链接】SamplesSteeltoe samples and reference application collection项目地址: https://gitcode.com/gh_mirrors/samples40/Samples
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考