# resource_detection **Repository Path**: liuhongyang1115/resource_detection ## Basic Information - **Project Name**: resource_detection - **Description**: 用于对K8s集群中工作节点中可用资源的监测(包括CPU资源、GPU、内存等) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-27 - **Last Updated**: 2024-07-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 资源感知 感知k8s集群中的存储、转发、计算资源。 设计程序并将其制作成镜像文件,使得k8s可根据镜像文件创建Pod, 该Pod能够对宿主机的可用资源进行感知,包括CPU、GPU、内存等资源, 将感知结果写入文件result.json(或etcd数据库中去) ## 计算资源指标: - CPU:在k8s中,cpu以核心数(core)为计量指标,单位一般包括 核(无后缀)、豪核(m)、微核(μ)、纳核(n),相邻单位换算数量为1000。 - GPU: - 在k8s中,不支持直接进行GPU调度,需要借助NVIDIA的Device Plugin或AMD的ROCm Device Plugin等插件来实现。以NVIDIA的Device Plugin为例,首先需要在你的集群中的每个节点上安装NVIDIA驱动和Kubernetes的Device Plugin。然后,你可以在你的容器中请求GPU,如下所示: ``` apiVersion: v1 kind: Pod metadata: name: gpu-pod spec: containers: - name: cuda-container image: nvidia/cuda:9.0-devel resources: limits: nvidia.com/gpu: 1 # 请求1个GPU ``` - Nvidia提供了三种方案实现物理GPU的虚拟化(https://github.com/NVIDIA/k8s-device-plugin) 1. CUDA Time-Slicing,时间切片共享 2. CUDA MPS,显存共享 3. MIG,多实例GPU ## 存储资源指标: - 内存 - 磁盘 ## 转发资源指标(暂不考虑): - 交换机端口速率 - 带宽 - 队列缓存