# AI-infra-deploy **Repository Path**: MLcore-Engine/ai-infra-deploy ## Basic Information - **Project Name**: AI-infra-deploy - **Description**: 部署的AI基础设施的ansible脚本,包括 docker、k8s、机器学习平台、推理平台等 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-02-20 - **Last Updated**: 2025-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 基础设施自动化部署工具 这是一个使用 Ansible 自动化部署 AI 基础设施的工具集。本项目旨在简化 AI 开发和推理环境的搭建过程,包括驱动、容器运行时、集群管理等各个层面的自动化部署。 ## 功能特性 - 自动化部署以下组件: - NVIDIA 驱动和 CUDA 环境 - Docker/Containerd 容器运行时 - Kubernetes 集群(单主节点和高可用集群) - Cube-Studio AI 开发平台 - MLcore-Engine AI平台 - AI 推理服务组件 - 时间同步服务 (Chrony) ## 项目结构 ``` . ├── roles/ │ ├── docker-role/ # Docker 安装和配置 │ ├── k8s-one-master/ # Kubernetes 单主节点集群部署 │ ├── k8s-ha/ # Kubernetes 高可用集群部署 │ ├── k8s-ha-masters/ # Kubernetes 高可用集群主节点部署 │ ├── add-node/ # 向集群添加节点 │ ├── nvidia/ # NVIDIA 专有驱动安装 │ ├── nvidia_open/ # NVIDIA 开源驱动安装 │ ├── nvidia_container/ # NVIDIA 容器运行时 │ ├── node-chrony/ # 时间同步服务配置 │ ├── os_check/ # 操作系统检查 │ ├── common/ # 公共配置和任务 │ └── install-kubeadm/ # 安装 kubeadm ├── inventory/ # 主机清单配置 ├── scripts/ # 辅助脚本 │ └── verify_connection.yml # 连接测试脚本 ├── site.yml # 主 playbook └── README.md ``` ## 主要模块说明 ### 基础设施模块 1. **NVIDIA 驱动安装 (nvidia/ & nvidia_open/)** - 支持专有驱动和开源驱动的自动化安装 - CUDA 环境配置 - GPU 监控组件部署 2. **容器运行时 (docker-role/)** - Docker/Containerd 安装配置 - 容器镜像仓库配置 - NVIDIA Container Runtime 集成 3. **Kubernetes 集群 (k8s-one-master/, k8s-ha/, k8s-ha-masters/)** - 单主节点 Kubernetes 集群部署 - 高可用集群部署 - 集群网络配置 - 存储解决方案集成 4. **时间同步服务 (node-chrony/)** - 配置集群时间同步 - 主节点与阿里云 NTP 服务器同步 - 工作节点与主节点同步 ### AI 平台模块 1. **Cube-Studio** - AI 开发平台部署 - 模型训练环境配置 - 资源调度优化 2. **推理服务** - 模型服务化组件 - 负载均衡配置 - 监控告警集成 ## 使用说明 1. 配置 inventory 文件: ```yaml all: vars: ansible_user: default_username ansible_password: default_password ansible_python_interpreter: /usr/bin/python3 children: test-cluster: children: master: hosts: mu02: ansible_host: 172.16.101.191 ansible_user: root ansible_password: password nodes: hosts: worker1: ansible_host: 192.168.1.100 ansible_user: root ansible_password: password ``` 2. 测试节点连通性: ```bash ansible-playbook -i inventory/hosts.yml scripts/verify_connection.yml --limit <主机名> ``` 3. 执行完整部署: ```bash ansible-playbook -i inventory/hosts site.yml ``` 4. 执行特定角色: ```bash ansible-playbook -i inventory/hosts.yml site.yml --tags <角色名称> ``` ## 配置说明 各个角色(role)下的主要配置项: - `roles/*/vars/`: 各组件的变量配置 - `roles/*/tasks/`: 具体的任务执行步骤 - `roles/*/templates/`: 配置文件模板 ## 环境要求 1. 硬件要求: - CPU: 8核或以上 - 内存: 16GB或以上 - 存储: 100GB以上可用空间 - GPU: NVIDIA显卡(用于AI训练/推理) 2. 软件要求: - 操作系统: Ubuntu 20.04/22.04 LTS - Python 3.8+ - Ansible 2.9+ ## 注意事项 1. 部署前请确保: - 所有节点网络互通 - SSH 密钥配置正确 - 系统满足最低硬件要求 - 已安装所需的基础软件包 2. 安全建议: - 及时更新组件版本 - 配置适当的访问控制 - 定期备份关键数据 - 遵循最小权限原则 ## 未来规划 - [ ] 添加多 GPU 架构支持 - [ ] 集成更多 AI 框架和工具 - [ ] 优化资源调度策略 - [ ] 添加更多监控和告警功能 - [ ] 支持更多云平台部署场景 - [ ] 添加高可用集群部署方案 ## 贡献指南 欢迎提交 Issue 和 Pull Request 来帮助改进项目。在提交代码前,请确保: 1. 代码风格符合项目规范 2. 添加必要的测试用例 3. 更新相关文档 4. 提供清晰的提交信息 ## 许可证 本项目采用 Apache-2.0 许可证