# k8s-scheduling-tuning-plugin **Repository Path**: kunpeng_compute/k8s-scheduling-tuning-plugin ## Basic Information - **Project Name**: k8s-scheduling-tuning-plugin - **Description**: No description available - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 6 - **Created**: 2024-10-12 - **Last Updated**: 2025-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Kubernetes NUMA Scheduling Tuning Plugin ## 项目简介 Kubernetes NUMA Scheduling Tuning Plugin 是一个基于 NRI (Node Resource Interface) 的 Kubernetes 调度调优插件,专门为鲲鹏处理器优化设计。该插件通过 NUMA 感知的资源分配策略,实现容器级别的 NUMA 亲和性调度,提升应用在鲲鹏环境下的性能表现。 ## 主要特性 - **NUMA 感知调度**: 基于 NUMA 拓扑结构进行智能资源分配 - **容器级亲和性**: 支持容器的 NUMA 亲和性配置 - **鲲鹏优化**: 针对鲲鹏处理器架构进行深度优化 - **NRI 集成**: 基于 containerd NRI 接口实现,无侵入式部署 ## 系统要求 ### 版本约束 - **Golang**: 1.22.4 或更高版本 - **Kubernetes**: 1.23 或更高版本 - **容器运行时**: containerd 1.7.0+,且需要支持 NRI 功能 - **操作系统**: Linux (推荐 openEuler 或 CentOS) - **架构**: ARM64 (鲲鹏处理器) ## 快速开始 ### 1. 环境准备 确保您的环境满足系统要求,并已正确安装 Kubernetes 和 containerd。 ### 2. 构建插件 ```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 接口 - 提供完整的部署和测试方案 --- **注意**: 本插件专为鲲鹏处理器优化,建议在鲲鹏环境下使用以获得最佳性能。