diff --git a/README.md b/README.md index ea646101de56d82152fbd62a477378cc2ead6e5f..c5b05de169b36d63cbb1939462ab00a818da9303 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,136 @@ -# k8s-scheduling-tuning-plugin +# Kubernetes NUMA Scheduling Tuning Plugin -#### 介绍 -{**以下是 Gitee 平台说明,您可以替换此简介** -Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} +## 项目简介 -#### 软件架构 -软件架构说明 +Kubernetes NUMA Scheduling Tuning Plugin 是一个基于 NRI (Node Resource Interface) 的 Kubernetes 调度调优插件,专门为鲲鹏处理器优化设计。该插件通过 NUMA 感知的资源分配策略,实现容器级别的 NUMA 亲和性调度,提升应用在鲲鹏环境下的性能表现。 +## 主要特性 -#### 安装教程 +- **NUMA 感知调度**: 基于 NUMA 拓扑结构进行智能资源分配 +- **容器级亲和性**: 支持容器的 NUMA 亲和性配置 +- **鲲鹏优化**: 针对鲲鹏处理器架构进行深度优化 +- **NRI 集成**: 基于 containerd NRI 接口实现,无侵入式部署 -1. xxxx -2. xxxx -3. xxxx +## 系统要求 -#### 使用说明 +### 版本约束 -1. xxxx -2. xxxx -3. xxxx +- **Golang**: 1.22.4 或更高版本 +- **Kubernetes**: 1.23 或更高版本 +- **容器运行时**: containerd 1.7.0+,且需要支持 NRI 功能 +- **操作系统**: Linux (推荐 openEuler 或 CentOS) +- **架构**: ARM64 (鲲鹏处理器) -#### 参与贡献 +## 快速开始 -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request +### 1. 环境准备 +确保您的环境满足系统要求,并已正确安装 Kubernetes 和 containerd。 -#### 特技 +### 2. 构建插件 -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +```bash +# 构建 NRI 插件镜像 +bash ./build.sh +``` + +### 3. 部署插件 + +```bash +# 安装 NRI 插件 +make plugin_install + +# 验证安装 +kubectl get pods -n kube-system | grep numa +``` + +## 故障排除 + +### 常见问题 + +1. **插件启动失败** + - 检查 containerd 版本是否支持 NRI + - 确认 NRI socket 路径是否正确 + +2. **NUMA 配置不生效** + - 验证节点 NUMA 拓扑结构 + +3. **性能问题** + - 确认 NUMA 亲和性配置是否合理 + - 检查资源分配是否均衡 + +### 日志分析 + +插件提供详细的日志输出,可通过以下方式查看: + +```bash +# 查看实时日志 +kubectl logs -f + +# 查看历史日志 +kubectl logs --previous -n +``` + +## 开发指南 + +### 项目结构 + +``` +k8s-scheduling-tuning-plugin/ +├── cmd/ # 命令行工具 +│ ├── grpcServer/ # gRPC 服务器 +│ └── nriplugin/ # NRI 插件主程序 +├── pkg/ # 核心包 +│ ├── agent/ # 代理组件 +│ ├── apis/ # API 定义 +│ ├── numaresources/ # NUMA 资源管理 +│ ├── policy/ # 策略引擎 +│ └── resmgr/ # 资源管理器 +├── config/ # 配置文件 +├── deploy/ # 部署文件 +└── test/ # 测试用例 +``` + +### 构建开发环境 + +```bash +# 克隆项目 +git clone https://gitee.com/kunpeng_compute/k8s-scheduling-tuning-plugin.git +cd k8s-scheduling-tuning-plugin + +# 安装依赖 +go mod tidy +``` + +## 贡献指南 + +我们欢迎社区贡献!请遵循以下步骤: + +1. Fork 本仓库 +2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) +3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) +4. 推送到分支 (`git push origin feature/AmazingFeature`) +5. 创建 Pull Request + +## 许可证 + +本项目采用 [LICENSE](LICENSE) 许可证。 + +## 支持与反馈 + +如果您在使用过程中遇到问题或有改进建议,欢迎通过以下渠道反馈: + +- **鲲鹏社区**: [https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/basicAccelFeatures/comAccel/kunpengnumaadjplugin_20_002.html](https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/basicAccelFeatures/comAccel/kunpengnumaadjplugin_20_002.html) +- **Gitee 仓库**: [https://gitee.com/kunpeng_compute/k8s-scheduling-tuning-plugin.git](https://gitee.com/kunpeng_compute/k8s-scheduling-tuning-plugin.git) + +## 更新日志 + +### v1.0.0 +- 初始版本发布 +- 支持基本的 NUMA 亲和性调度 +- 集成 NRI 接口 +- 提供完整的部署和测试方案 + +--- + +**注意**: 本插件专为鲲鹏处理器优化,建议在鲲鹏环境下使用以获得最佳性能。