NVIDIA GPU Feature Discovery for Kubernetes 教程

NVIDIA GPU Feature Discovery for Kubernetes 教程

gpu-feature-discoveryGPU plugin to the node feature discovery for Kubernetes项目地址:https://gitcode.com/gh_mirrors/gp/gpu-feature-discovery

1. 项目介绍

NVIDIA GPU Feature Discovery 是一个专为 Kubernetes 设计的插件,旨在自动识别并标签化节点上可用的GPU特性。它通过集成 Kubernetes 的 Node Feature Discovery(NFD)机制,实现了对节点上的GPU资源进行详细标签化管理的能力。这使得Kubernetes能够更精细化地管理和分配GPU资源,支持如MIG(多实例GPU)等高级特性。对于构建基于NVIDIA GPU的容器化应用环境来说,本项目是不可或缺的一环。

2. 快速启动

要快速部署NVIDIA GPU Feature Discovery到您的Kubernetes集群,您可选择两种方式:DaemonSetJob方式。以下是使用这两种方法的基本步骤。

通过DaemonSet部署

在生产环境中推荐这种方式,确保每个节点都能运行GPU Feature Discovery。

kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.15.0/deployments/static/gpu-feature-discovery-daemonset.yaml

通过Job单次部署

如果您只想为特定节点生成标签,可以采用Job方式。

首先,设置您想标签化的节点名称:

export NODE_NAME=您的节点名称
curl https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.15.0/deployments/static/gpu-feature-discovery-job.yaml.template \
| sed "s/NODE_NAME/$NODE_NAME/" > gpu-feature-discovery-job.yaml
kubectl apply -f gpu-feature-discovery-job.yaml

记得替换您的节点名称为您实际的目标节点名。

3. 应用案例和最佳实践

应用案例包括但不限于深度学习训练、高性能计算(HPC)任务以及云游戏平台。最佳实践中,应当将此项目结合NVIDIA GPU Operator一起使用,以实现GPU资源的自动化配置与管理。确保您的Kubernetes集群已启用RBAC,并且对集群中的Pod赋予了必要的权限来访问GPU资源。此外,利用Label selectors优化资源分配策略,确保应用程序可以根据标签精确匹配所需的GPU类型和数量。

4. 典型生态项目

在 NVIDIA GPU 的生态系统中,GPU Feature Discovery与其他关键组件共同工作,如NVIDIA DockerKubernetes GPU调度NVIDIA Triton Inference Server,这些组件共同构成了加速机器学习、深度学习和其他HPC应用的强大基础设施。特别是当与NVIDIA AI Enterprise套件搭配时,提供了企业级的支持和认证镜像,确保了从边缘到数据中心的高可用性和性能表现。


以上就是关于NVIDIA GPU Feature Discovery的简要教程,覆盖了基础部署、应用场景、最佳实践及其在更广泛生态系统中的位置。希望这能帮助您高效地在Kubernetes环境下管理和使用GPU资源。

gpu-feature-discoveryGPU plugin to the node feature discovery for Kubernetes项目地址:https://gitcode.com/gh_mirrors/gp/gpu-feature-discovery

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

### Ubuntu 22.04 上部署 Kubernetes 并支持 GPU 的安装教程 #### 系统环境准备 在开始之前,需确认目标机器运行的是 Ubuntu 22.04 LTS 版本。可以通过以下命令验证系统版本[^2]: ```bash lsb_release -a ``` 关闭不必要的服务以优化性能并减少冲突。具体操作如下: - **禁用交换分区** 编辑 `/etc/fstab` 文件并将所有涉及 `swap` 的行注释掉,随后执行以下命令来立即停用交换功能: ```bash sed -i "/swap/{s/^/#/g}" /etc/fstab swapoff -a ``` - **关闭防火墙** 如果不需要使用防火墙,则可以将其完全禁用: ```bash ufw disable ufw status ``` #### 主机名与网络配置 设置主机名以便于集群中的节点识别,并更新 `/etc/hosts` 文件以映射 IP 地址和主机名。 - 设置主机名: ```bash hostname t-node-01 echo "t-node-01" > /etc/hostname ``` - 更新 `/etc/hosts` 文件: ```bash cat >> /etc/hosts << EOF 10.10.xxx.47 t-master 10.10.xxx.46 t-node-01 10.10.xxx.45 t-node-02 10.10.xxx.44 t-node-03 EOF ``` 启用路由转发功能以支持容器间的通信: ```bash cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF modprobe br_netfilter sysctl -p /etc/sysctl.d/k8s.conf ``` 加载必要的内核模块以支持负载均衡器(IPVS)等功能: ```bash cat > /etc/modules-load.d/ipvs.conf << EOF ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack EOF systemctl restart systemd-modules-load.service ``` #### 安装 Docker 或其他容器运行时 Kubernetes 需要一个兼容的容器运行时,默认推荐使用 Docker。以下是安装 Docker 的步骤: 1. 添加官方 GPG 密钥和仓库地址: ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` 2. 安装 Docker CE 和 CLI 工具: ```bash apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io ``` 3. 启动并设置开机启动: ```bash systemctl start docker systemctl enable docker ``` #### 安装 kubeadm、kubelet 和 kubectl 通过 APT 包管理工具安装 Kubernetes 组件: 1. 添加 Kubernetes 软件包签名密钥和源列表: ```bash curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list ``` 2. 安装所需组件: ```bash apt-get update && apt-get install -y kubelet kubeadm kubectl ``` 3. 锁定版本号以防自动升级破坏稳定性: ```bash apt-mark hold kubelet kubeadm kubectl ``` #### 初始化 Master 节点 初始化 Kubernetes 控制平面节点: ```bash kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 完成初始化后,按照提示将管理员账户切换至 kubeconfig 配置文件路径下: ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 应用 Flannel CNI 插件以提供 Pod 网络连接: ```bash kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` #### 加入 Worker 节点 获取加入令牌并通过以下命令让工作节点加入集群: ```bash kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash> ``` #### 支持 NVIDIA GPU 为了使 Kubernetes 支持 GPU 设备,需要额外安装 NVIDIA 驱动程序及相关插件。 1. 安装 NVIDIA 驱动程序(假设已预装驱动)。如果未安装,可通过以下方式安装: ```bash 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 apt-get update && apt-get install -y nvidia-container-toolkit systemctl restart docker ``` 2. 使用 Helm 安装 GPU Feature Discovery (GFD),这是一个用于检测 GPU 功能的 Kubernetes 插件: ```bash helm repo add nvidia https://nvidia.github.io/gpu-monitoring-tools/helm-charts/ helm install gpu-feature-discovery nvidia/gpu-feature-discovery --namespace gpu-feature-discovery --create-namespace ``` 卸载 GFD 可通过以下命令实现: ```bash helm uninstall gpu-feature-discovery -n gpu-feature-discovery ``` --- ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宫萍润

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值