kubernetes 控制平面
1. 服务器规格
- 基础配置 | 项目 | 配置 | | —- | —- | | CPU | Intel XEON E3 1231V3 以上 | | 内存 | 4G 以上 | | 磁盘 | 1T 以上 | | 网络 | 2个以上的千兆网口 |
- 推荐配置
项目 | 配置 |
---|---|
CPU | Intel XEON E5 2699V3 |
内存 | 32G |
磁盘 | 4T |
网络 | 4*千兆网口 |
2. kubernetes控制平面相关参数
参数 | 配置 |
---|---|
kubernetes 版本 | 1.18+ |
API-Server QPS | 3000 |
API-Server Brust | 3000 |
TIPS: 控制平面也可以使用公有云的kubernetes作为控制平面
Kubernetes 工作节点
1. 服务器规格
- 基础配置
项目 | 配置 |
---|---|
CPU | Intel XEON E3 1231V3 以上 |
内存 | 16G 以上 |
磁盘 | 4T 以上 |
网络 | 2个以上的千兆网口 |
显卡 | GTX 1660 6G 以上 |
- 推荐配置
项目 | 配置 |
---|---|
CPU | Intel XEON E5 2699V3 |
内存 | 128G |
磁盘 | 16T |
网络 | 4*千兆网口 |
显卡 | Tesla V100 * 8 |
2. 工作操作系统相关参数
软件相关项目 | 配置 |
---|---|
操作系统 | Centos 7 \ Ubuntu 18.04 |
Swap | 关闭 |
文件系统 | EXT4 |
Selinux | 关闭 |
防火墙 | IPTABLES |
Kubelet | 1.18.2 以上 |
Docker | 18.03 以上 |
NVIDIA-Driver | 400+以上 |
3. Docker 的相关配置
1.确保英伟达容器运行时和英伟达驱动程序都安装在每个工作节点上。有关更多详细信息,请参阅nvidia docker的相关说明。
- Ubuntu
```shell
Add the package repositories
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) $ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - $ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit nvidia-container-runtime $ sudo systemctl restart docker
- Centos
```shell
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
$ sudo yum install -y nvidia-container-toolkit nvidia-container-runtime
$ sudo systemctl restart docker
2.将英伟达容器运行时启用为每个工作节点上的DOCKER默认运行时。
您需要修改 /etc/docker/deamon.json 添加到每个工作节点上的以下内容:
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
},
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"registry-mirrors": ["https://registry.docker-cn.com"]
}
部署本产品
本产品一共有四个组件,分别为:SCV嗅探器、Yoda 调度器、Breakfast 控制器和Tower 图形界面
- 部署 SCV 嗅探器
SCV是一个分布式集群GPU嗅探器。它可以配合Yoda调度器来实现细粒度的GPU调度任务。
- 部署 SCV 嗅探器
$ kubectl apply -f https://raw.githubusercontent.com/NJUPT-ISL/SCV/master/deploy/deploy.yaml
- 部署 Yoda 调度器
Yoda 调度器是一个基于 GPU 指标的 Kubernetes 调度器
- 部署 Yoda 调度器
$ kubectl apply -f https://raw.githubusercontent.com/NJUPT-ISL/Yoda-Scheduler/master/deploy/yoda-scheduler.yaml
- 部署 Breakfast 控制器
Breakfast是kubernetes自定义资源控制器,它通过自定义控制器管理运行机器学习pod的生命周期。
- 部署 Breakfast 控制器
$ kubectl apply -f https://raw.githubusercontent.com/NJUPT-ISL/Breakfast/master/deploy/breakfast.yaml
- 部署 Tower 图形界面
Tower是基于Kubernetes的机器学习任务管理图形界面,实现了对机器学习任务生命周期的管理。
- 部署 Tower 图形界面
$ git clone https://github.com/NJUPT-ISL/Tower.git
$ python manage.py makemigrations
$ python manage.py migrate
$ python manage.py runserver
所有产品组件所对应的项目均存在于 https://github.com/NJUPT-ISL 里。