feat(docs): 添加项目文档和配置

- 新增 .claude/settings.local.json 配置文件,添加工作流命令权限
- 创建详细的产品需求文档(PRD),定义项目愿景、功能需求和技术规范
- 包含优雅下线和抢占式实例自动轮转等核心功能设计
This commit is contained in:
D8D Developer
2025-11-06 12:35:55 +00:00
parent e776084312
commit f022ae2250
2 changed files with 308 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
{
"permissions": {
"allow": [
"SlashCommand(/bmad:bmm:workflows:product-brief)",
"SlashCommand(/bmad:bmm:workflows:workflow-status)"
],
"deny": [],
"ask": []
}
}

298
docs/PRD.md Normal file
View File

@@ -0,0 +1,298 @@
# vk-eci - Product Requirements Document
**Author:** d8der
**Date:** 2025-11-06
**Version:** 1.0
---
## Executive Summary
阿里云ECI Virtual Kubelet提供商致力于为Kubernetes用户提供无缝、可靠且成本优化的无服务器容器体验。通过将Kubernetes Pod调度到阿里云弹性容器实例ECI用户可以在享受无服务器计算便利性的同时保持与现有Kubernetes工作流的完全兼容。
项目的核心愿景是让容器编排变得简单、高效且经济实惠,让用户专注于应用开发而非基础设施管理。
### What Makes This Special
**零运维成本优化** - 用户无需管理底层基础设施即可享受无服务器容器的便利性和成本优势特别是通过抢占式实例最高可节省90%的计算成本。
**无缝Kubernetes集成** - 与现有Kubernetes工作流完全兼容用户可以通过标准的Kubernetes YAML文件部署应用无需学习新的API或工具。
**企业级可靠性** - 支持优雅下线和抢占式实例回收触发的自动轮转机制,确保业务连续性,让用户在生产环境中安心使用低成本实例。
---
## Project Classification
**Technical Type:** CLI工具 / 基础设施适配器
**Domain:** 云原生 / Kubernetes / 容器编排
**Complexity:** 中等复杂度 - 需要深度集成Kubernetes和阿里云ECI API
这是一个开源的基础设施项目作为Kubernetes和阿里云弹性容器实例ECI之间的桥梁。项目采用Virtual Kubelet Provider架构模式需要处理复杂的生命周期管理、网络配置和资源调度逻辑。
[domain_context_summary]
---
## Success Criteria
### 核心成功指标
**成本优化**
- 通过抢占式实例和按需计费降低计算成本30-70%
- 资源利用率从传统的30-50%提升至80%以上
**运维效率**
- 减少节点管理时间50%以上
- 实现秒级扩展,满足突发流量需求
**可靠性保证**
- 支持优雅下线在3分钟预警窗口内确保业务连续性
- 实现抢占式实例回收触发的Pod自动轮转为无状态应用提供零停机体验
- Pod启动时间控制在30秒以内确保在预警窗口内完成轮转
- 提供降级策略应对资源竞争和网络切换延迟
**用户体验**
- 与现有Kubernetes工作流无缝集成
- 提供清晰的错误信息和日志
- 支持企业级网络和安全配置
[business_metrics]
---
## Product Scope
### MVP - Minimum Viable Product
**基础功能**
- 支持标准Kubernetes Pod调度到ECI
- 基本的容器生命周期管理(创建、删除、查询)
- CPU和内存资源配置
- 镜像管理和私有镜像仓库支持
- 基础存储卷支持EmptyDir, NFS, ConfigMap, Secret
**网络配置**
- 容器端口映射
- 基础网络连通性
### Growth Features (Post-MVP)
**优雅下线支持**
- 支持 `k8s.aliyun.com/eci-spot-release-strategy: api-evict` Annotation
- 处理 `SpotToBeReleased` 事件
- 调用 Eviction API 进行优雅驱逐
- 遵从 PDB 和 terminationGracePeriodSeconds 配置
**抢占式实例回收触发的自动轮转**
- 实现基于 `SpotToBeReleased` 事件的 Pod 自动轮转
- 支持抢占式实例回收时的零停机业务连续性
- 集成健康检查和就绪检查确保新Pod就绪
- 提供配置选项控制轮转策略
**企业级功能**
- 安全组和网络策略支持
- 监控和告警集成
- 多集群管理
- 备份和恢复机制
### Vision (Future)
**高级功能**
- 抢占式实例智能调度算法
- 成本优化建议和自动化
- 多云部署支持
- 社区插件和扩展框架
**生态系统集成**
- 与阿里云其他服务深度集成
- 支持更多云厂商
- 成为行业标准 Virtual Kubelet Provider
---
[domain_considerations]
---
[innovation_patterns]
---
[project_type_requirements]
---
[ux_principles]
---
## Functional Requirements
### 核心调度功能
**Pod 生命周期管理**
- **FR-001**: 支持创建、查询、删除 ECI Pod
- **FR-002**: 支持 Pod 状态监控和事件上报
- **FR-003**: 支持 Pod 资源限制配置CPU、内存
- **FR-004**: 支持镜像拉取和私有仓库认证
**网络和存储**
- **FR-005**: 支持容器端口映射和网络连通性
- **FR-006**: 支持基础存储卷类型EmptyDir, NFS, ConfigMap, Secret
- **FR-007**: 支持 EIP 注解配置
### 优雅下线功能
**抢占式实例事件处理**
- **FR-008**: 支持 `SpotToBeReleased` 事件监听和处理
- **FR-009**: 支持 `ContainerInstanceExpired` Pod Condition 检测
- **FR-010**: 支持 `k8s.aliyun.com/eci-spot-release-strategy: api-evict` Annotation
**Eviction API 集成**
- **FR-011**: 实现 Eviction API 调用机制
- **FR-012**: 遵从 PodDisruptionBudget (PDB) 配置
- **FR-013**: 支持 terminationGracePeriodSeconds 配置
- **FR-014**: 提供优雅下线超时处理机制
### 抢占式实例回收触发的自动轮转
**事件驱动的轮转机制**
- **FR-015**: 支持基于 `SpotToBeReleased` 事件的 Pod 自动轮转
- **FR-016**: 实现抢占式实例回收时的零停机业务连续性
- **FR-017**: 支持新Pod创建和就绪检查的协调机制
**轮转策略配置**
- **FR-018**: 提供配置选项控制轮转策略
- **FR-019**: 支持分批轮转和并发控制
- **FR-020**: 提供轮转状态监控和报告
### 企业级功能
**安全和网络**
- **FR-021**: 支持安全组配置
- **FR-022**: 支持 VPC 网络策略
- **FR-023**: 支持多可用区部署
**监控和运维**
- **FR-024**: 集成 OpenCensus 监控
- **FR-025**: 支持详细的日志记录
- **FR-026**: 提供健康检查和就绪检查
---
## Non-Functional Requirements
### 性能需求
**响应时间**
- Pod 创建时间:≤ 30 秒
- Pod 删除时间:≤ 10 秒
- API 响应时间:≤ 2 秒
**资源效率**
- 内存使用:≤ 512 MB
- CPU 使用:≤ 0.5 核心
- 网络带宽:支持千兆网络
### 可靠性需求
**可用性**
- 系统可用性:≥ 99.9%
- Pod 创建成功率:≥ 99%
- 优雅下线成功率:≥ 95%
**容错性**
- 支持 API 调用重试机制
- 提供优雅降级策略
- 支持故障自动恢复
### 安全性需求
**认证和授权**
- 支持阿里云 Access Key 认证
- 支持 Kubernetes Service Account
- 提供细粒度的权限控制
**数据保护**
- 加密存储敏感配置信息
- 支持网络传输加密
- 提供审计日志记录
### 可扩展性需求
**水平扩展**
- 支持多实例部署
- 支持负载均衡
- 支持自动扩缩容
**功能扩展**
- 模块化架构设计
- 支持插件机制
- 提供扩展 API
### 集成需求
**Kubernetes 集成**
- 完全兼容 Kubernetes API
- 支持标准 Kubernetes 工具链
- 提供 Helm Chart 部署
**云服务集成**
- 深度集成阿里云 ECI API
- 支持阿里云其他服务VPC、SLB等
- 提供多云部署支持
---
## Technical Feasibility Analysis
### 抢占式实例业务连续性可行性
**可实现场景**
- **无状态Web服务**通过提前创建新Pod实现零停机轮转
- **API服务**:利用负载均衡器健康检查实现无缝切换
- **数据处理流水线**:配合消息队列实现任务重试
**技术限制**
- **时间窗口**仅有3分钟预警时间需要高效的Pod创建和就绪机制
- **资源竞争**新Pod创建可能遇到资源不足需要降级策略
- **网络切换**IP地址变更可能导致短暂连接中断
**推荐使用模式**
- 配合 PodDisruptionBudget (PDB) 确保最小可用实例数
- 使用 Readiness Probe 确保新Pod完全就绪
- 配置合理的 terminationGracePeriodSeconds
- 建议用于容错性强的无状态应用
---
## Implementation Planning
### Epic Breakdown Required
Requirements must be decomposed into epics and bite-sized stories (200k context limit).
**Next Step:** Run `workflow epics-stories` to create the implementation breakdown.
---
## References
- Product Brief: docs/product-brief-vk-eci-2025-11-06.md
- Domain Brief: [domain_brief_path]
- Research: [research_documents]
---
## Next Steps
1. **Epic & Story Breakdown** - Run: `workflow epics-stories`
2. **UX Design** (if UI) - Run: `workflow ux-design`
3. **Architecture** - Run: `workflow create-architecture`
---
_This PRD captures the essence of vk-eci - 通过优雅下线和抢占式实例回收触发的自动轮转机制为Kubernetes用户提供可靠、低成本的无服务器容器体验_
_Created through collaborative discovery between d8der and AI facilitator._