- 新增开发指南文档,包含环境设置、构建流程和最佳实践 - 添加项目概览文档,提供项目全面介绍和架构说明 - 创建技术栈分析文档,详细说明使用的技术和依赖 - 添加源树分析文档,解释项目目录结构和关键文件 - 创建文档索引页面,统一管理所有项目文档 - 生成项目扫描报告,记录文档生成过程 - 更新工作流状态配置,指定文档化前提条件 - 添加.gitignore规则,忽略NFS相关文件
153 lines
4.0 KiB
Markdown
153 lines
4.0 KiB
Markdown
# 项目概览
|
||
|
||
## 项目基本信息
|
||
|
||
**项目名称**: Alibaba Cloud ECI Provider for Virtual Kubelet
|
||
**项目类型**: CLI工具 (Go语言)
|
||
**架构类型**: 单体架构
|
||
**存储库类型**: 单体代码库
|
||
**主要功能**: 将Kubernetes Pod调度到阿里云ECI(弹性容器实例)的适配器
|
||
|
||
## 项目描述
|
||
|
||
Alibaba Cloud ECI Provider是一个Virtual Kubelet Provider实现,它允许Kubernetes集群将Pod调度到阿里云的弹性容器实例(ECI)上,而无需管理底层服务器或集群。
|
||
|
||
### 核心价值
|
||
- **无服务器容器** - 无需管理Kubernetes节点
|
||
- **成本优化** - 按实际使用付费,支持抢占式实例
|
||
- **弹性扩展** - 自动扩展容器实例
|
||
- **无缝集成** - 与现有Kubernetes工作流完全兼容
|
||
|
||
## 技术栈摘要
|
||
|
||
### 核心技术
|
||
- **编程语言**: Go 1.13+
|
||
- **框架**: Virtual Kubelet Provider接口
|
||
- **云服务**: 阿里云ECI API
|
||
- **命令行**: Cobra框架
|
||
|
||
### 主要依赖
|
||
- `github.com/virtual-kubelet/virtual-kubelet` - Virtual Kubelet核心
|
||
- `github.com/aliyun/alibaba-cloud-sdk-go` - 阿里云官方SDK
|
||
- `k8s.io/client-go` - Kubernetes客户端
|
||
- `github.com/spf13/cobra` - CLI框架
|
||
|
||
## 架构概览
|
||
|
||
### 系统架构
|
||
```
|
||
Kubernetes Cluster
|
||
↓
|
||
Virtual Kubelet
|
||
↓
|
||
ECI Provider (本项目)
|
||
↓
|
||
Alibaba Cloud ECI API
|
||
↓
|
||
ECI Container Instances
|
||
```
|
||
|
||
### 组件关系
|
||
- **Provider接口** - 实现Virtual Kubelet Provider规范
|
||
- **ECI客户端** - 封装阿里云ECI API调用
|
||
- **配置管理** - 支持TOML配置文件和环境变量
|
||
- **命令行界面** - 基于Cobra的用户交互
|
||
|
||
## 功能特性
|
||
|
||
### 核心功能
|
||
- ✅ Pod创建和调度到ECI
|
||
- ✅ Pod状态监控和同步
|
||
- ✅ 容器日志收集
|
||
- ✅ 资源限制和配额管理
|
||
- ✅ 抢占式实例支持
|
||
- ✅ 多区域部署支持
|
||
|
||
### 配置特性
|
||
- ✅ TOML配置文件支持
|
||
- ✅ 环境变量覆盖
|
||
- ✅ 合理的默认配置
|
||
- ✅ 动态配置重载
|
||
|
||
### 运维特性
|
||
- ✅ 结构化日志输出
|
||
- ✅ 分布式追踪支持
|
||
- ✅ 健康检查端点
|
||
- ✅ 指标收集
|
||
|
||
## 部署架构
|
||
|
||
### 部署模式
|
||
```
|
||
Kubernetes Cluster
|
||
├── Virtual Kubelet (DaemonSet)
|
||
│ └── ECI Provider
|
||
└── Application Pods
|
||
├── Pod on Cluster Nodes
|
||
└── Pod on ECI Instances (via Virtual Kubelet)
|
||
```
|
||
|
||
### 网络架构
|
||
- **VPC集成** - 通过VSwitch与VPC网络集成
|
||
- **安全组** - 网络安全策略管理
|
||
- **服务发现** - 与Kubernetes服务发现集成
|
||
|
||
## 使用场景
|
||
|
||
### 适合场景
|
||
- **突发流量处理** - 快速扩展应对流量高峰
|
||
- **批处理作业** - 短时间运行的Job任务
|
||
- **成本敏感应用** - 使用抢占式实例降低成本
|
||
- **无状态服务** - Web服务、API网关等
|
||
|
||
### 部署示例
|
||
```yaml
|
||
apiVersion: v1
|
||
kind: Pod
|
||
metadata:
|
||
name: eci-pod-example
|
||
annotations:
|
||
k8s.aliyun.com/eci-spot-strategy: "SpotAsPriceGo"
|
||
spec:
|
||
nodeName: virtual-kubelet
|
||
containers:
|
||
- name: nginx
|
||
image: nginx:latest
|
||
tolerations:
|
||
- key: alibabacloud.com/eci
|
||
operator: "Exists"
|
||
effect: NoSchedule
|
||
```
|
||
|
||
## 项目状态
|
||
|
||
### 当前版本
|
||
- **稳定版本**: 生产环境可用
|
||
- **活跃维护**: 持续更新和维护
|
||
- **社区支持**: Virtual Kubelet社区项目
|
||
|
||
### 兼容性
|
||
- **Kubernetes**: 1.14+
|
||
- **Virtual Kubelet**: 0.10.0+
|
||
- **阿里云ECI**: 全功能支持
|
||
|
||
## 文档链接
|
||
|
||
### 核心文档
|
||
- [技术栈分析](./technology-stack.md) - 详细技术栈说明
|
||
- [源树分析](./source-tree-analysis.md) - 项目结构说明
|
||
- [开发指南](./development-guide.md) - 开发环境设置
|
||
|
||
### 现有文档
|
||
- [README.md](../README.md) - 项目概述和使用说明
|
||
- [ECI文档](./eci.md) - ECI抢占式实例详细文档
|
||
- [产品简介](./product-brief-vk-eci-2025-11-06.md) - 产品需求文档
|
||
|
||
### 外部资源
|
||
- [Virtual Kubelet文档](https://github.com/virtual-kubelet/virtual-kubelet)
|
||
- [阿里云ECI文档](https://help.aliyun.com/product/87445.html)
|
||
- [Kubernetes文档](https://kubernetes.io/docs/)
|
||
|
||
---
|
||
|
||
*此概览文档提供了项目的全面介绍,包括技术栈、架构、功能特性和使用场景,是了解项目全貌的起点。* |