SuperAPI AI 工具集

dotnet-container-deployment

部署与运维

查看项目

更新于 10-16 03:15

技能介绍

用途:本技能聚焦 .NET 容器化应用的部署环节,覆盖 Kubernetes 部署编排、本地开发环境搭建和镜像构建推送的 CI/CD 集成。Dockerfile 编写、多阶段构建、基础镜像选择及 dotnet publish 容器镜像等内容不在范围内,由其他技能承担;高级流水线模式、依赖注入、异步模式与容器测试也分别由对应技能负责。

主要能力:提供可直接参考的 Kubernetes Deployment 与 Service 清单示例,包含副本数、容器端口、环境变量、Secret/ConfigMap 引用、资源 requests/limits、securityContext(runAsNonRoot、runAsUser、fsGroup)以及 terminationGracePeriodSeconds。讲解三类探针的用途与配置:startupProbe 给应用初始化留出时间、livenessProbe 检测进程是否健康(失败则重启 Pod)、readinessProbe 决定是否接收流量(失败则移出 Service 端点),并给出失败阈值与周期策略。说明优雅关闭:.NET 响应 SIGTERM,通过 IHostApplicationLifetime 注册清理逻辑,并用 Host.ShutdownTimeout 控制等待时间,其值需小于 terminationGracePeriodSeconds。提供 Docker Compose 本地开发方案,含应用、PostgreSQL、Redis 服务、健康检查与 depends_on 条件,以及 override 文件配合 dotnet watch 实现热重载,还可叠加 OpenTelemetry Collector 与 Grafana 的本地可观测性栈。CI/CD 部分给出 GitHub Actions 构建并推送镜像的示例,包括登录仓库、提取镜像元数据与 build-push-action 缓存,并列出镜像标签策略(latest 仅用于开发、semver 不可变、SHA 便于追溯),另演示使用 dotnet publish /t:PublishContainer 推送镜像。

使用方式:将示例 YAML 按项目调整后应用;本地执行 docker compose up(或叠加多个 -f 文件)启动依赖;CI 中在 push 或 tag 事件触发构建推送。

限制与注意:不要在 Kubernetes 清单中使用 latest 标签,连接字符串等敏感信息应通过 Secret 引用,生产环境建议使用外部密钥运算符;不要在存活探针中加入依赖健康检查;docker compose depends_on 需配合 condition: service_healthy;健康检查中的 curl 依赖基础镜像含 shell 与 curl,精简镜像需改用其他方式或省略;建议为 Pod 设置资源请求与限制并以非 root 运行。具体安装命令、价格与平台信息暂未提供。