Jetson 边缘 GPU 节点初始化

把 NVIDIA Jetson 边缘盒子(Orin/Xavier 等)接入 k8s 集群前的环境初始化,按 Jetpack 版本检查环境、安装 NVIDIA 容器运行时并验证 GPU

部署安装 / 节点准备
jetsonjetpackl4torinxavier边缘设备edgearm64nvidia-container-toolkitnvidia-container-runtimejetson_releasejtoptegrastatsl4t-pytorchl4t-cudacuda

Jetson 边缘 GPU 节点初始化

本文针对 NVIDIA Jetson 边缘盒子(如 Orin NX、Xavier)接入 k8s 集群前的环境初始化。Jetson 是 arm64 架构、基于 L4T(Linux for Tegra)的边缘 GPU 设备,与常规 x86 GPU 服务器的初始化方式不同:不需要单独装显卡驱动(随 Jetpack 刷机自带),但容器运行时与可用镜像有专门要求。

Jetpack 6.2 版本

刷机后,设备环境完好,可直接加入 k8s。

Jetpack 5.1 版本

查看盒子的版本信息

# 查看盒子上有没有gpu卡
ls /dev/nvidia*
# 结果类似:/dev/nvidia0  /dev/nvidiactl  /dev/nvidia-uvm  /dev/nvidia-modeset

# 查看盒子系统相关信息
sudo swapoff -a
apt-get install -y jetson-io

jetson_release

jetson_release 显示信息示例:

Software part of jetson-stats 4.3.2 - (c) 2024, Raffaello Bonghi
Model: NVIDIA Orin NX Developer Kit - Jetpack 5.1.5 [L4T 35.6.1]     # 这里是jetpack的版本和L4T的版本
NV Power Mode[0]: MAXN
Serial Number: [XXX Show with: jetson_release -s XXX]
Hardware:
 - P-Number: p3767-0001
 - Module: NVIDIA Jetson Orin NX (8GB ram)     # 硬件型号
Platform:
 - Distribution: Ubuntu 20.04 focal             #   平台系统
 - Release: 5.10.216-tegra                      #   盒子上的系统版本,基于上面的ubuntu
jtop:                                           #   实时监控,等于htop,会显示jetpack的版本和L4T版本  R35对应jetpack 5.1
 - Version: 4.3.2
 - Service: Active
Libraries:
 - CUDA: 11.4.315                               # 这里是cuda版本
 - cuDNN: 8.6.0.166
 - TensorRT: 8.5.2.2
 - VPI: 2.4.8
 - Vulkan: 1.3.204
 - OpenCV: 4.5.4 - with CUDA: NO

其他监控命令:

# 查看内存/cpu/gpu使用情况。实时监控,等于htop,会显示jetpack的版本和L4T版本。R35对应jetpack 5.1。GA10B(Orin)、GV10B(Xavier)
jtop    # 可以通过 1 2 3 替换要显示的内容

# 查看 L4T 版本号
cat /etc/nv_tegra_release

# 监控 CPU/GPU/内存使用率(没有jtop那么好用)
tegrastats

安装英伟达运行时

如果之前安装错了,先强制删除之前安装的,必须卸载掉所有报错的才行:

# 查看之前安装了哪些
dpkg -l | grep -E "nvidia"

sudo dpkg --purge --force-all nvidia-docker2 nvidia-container-toolkit nvidia-container-runtime nvidia-container-toolkit-base libnvidia-container1 libnvidia-container0

apt purge -y nvidia-container-toolkit nvidia-container-runtime libnvidia-container-tools libnvidia-container1 libnvidia-container0  nvidia-container-toolkit-base nvidia-docker2

# 删除所有 NVIDIA 相关的软件源
sudo rm -f /etc/apt/sources.list.d/nvidia*.list
# 删除冲突的 GPG 密钥
sudo rm -f /usr/share/keyrings/nvidia*.gpg

5.1 版本的 jetpack 盒子原本带的源不行,太老了,重新添加源:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

安装 NVIDIA Container Toolkit。安装一个不要太新的版本(太新的结构设计没有文档说明不清楚),这里安装 1.14 的,要求 >= 1.11.0,不然 k8s device plugin 部署不了:

sudo apt update
apt-cache madison nvidia-container-toolkit

sudo apt install -y nvidia-container-toolkit=1.14.6-1 \
                   nvidia-container-toolkit-base=1.14.6-1 \
                   libnvidia-container-tools=1.14.6-1 \
                   libnvidia-container1=1.14.6-1 \
                   nvidia-container-runtime=3.14.0-1

安装后的目录结构:

root@ubuntu:/# ls -l /usr/bin/nvidia-*

/usr/bin/nvidia-bug-report-tegra.sh
/usr/bin/nvidia-container-cli
/usr/bin/nvidia-container-runtime
/usr/bin/nvidia-container-runtime-hook
/usr/bin/nvidia-container-toolkit -> /usr/bin/nvidia-container-runtime-hook
/usr/bin/nvidia-ctk
/usr/bin/nvidia-detector
/usr/bin/nvidia-xconfig

有些更新的版本没有 /usr/bin/nvidia-container-runtime,则必须新建软链 /usr/bin/nvidia-container-runtime 指向 /usr/bin/nvidia-container-toolkit

安装后用 dpkg -l | grep -E "nvidia" 应能查看到这几个包:

ii  libnvidia-container-tools                  1.14.6-1                             arm64        NVIDIA container runtime library (command-line tools)
ii  libnvidia-container1:arm64                 1.14.6-1                             arm64        NVIDIA container runtime library
ii  nvidia-container-runtime                   3.14.0-1                             all          NVIDIA Container Toolkit meta-package
ii  nvidia-container-toolkit                   1.14.6-1                             arm64        NVIDIA Container toolkit
ii  nvidia-container-toolkit-base              1.14.6-1                             arm64        NVIDIA Container Toolkit Base

docker 修改配置

cat > /etc/docker/daemon.json <<EOF
{
    # 镜像加速器,拉取docker官方镜像时需要
    "registry-mirrors": ["https://hub.rat.dev/","https://docker.xuanyuan.me", "https://docker.m.daocloud.io","https://dockerproxy.com"],
    # dns可不配置
    "dns": ["114.114.114.114","8.8.8.8"],
    # k8s集群可以同时拉取多个镜像
    "max-concurrent-downloads": 30,
    # 默认系统根目录下,如果磁盘有限可以改为其他有空间的目录,占用存储会越来越多
    "data-root": "/data/docker",
    # 内部如果有http的镜像仓库,可以添加
    "insecure-registries":["docker.oa.com:8080"],
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}
EOF

# 用工具也设置一遍,省得配置不对
nvidia-ctk runtime configure --runtime=docker

systemctl stop docker
systemctl daemon-reload
systemctl start docker

注意:daemon.json 是严格 JSON,不支持注释。上面注释仅为说明用途,实际写入文件时请删除所有 # 注释行。

测试 docker 识别 GPU

Jetson 上必须使用 L4T 的专用 pytorch 镜像,不能使用常规 pytorch / 常规 cuda 镜像。

# jetpack 5.1以前  镜像列表参考  https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-pytorch/tags
docker run --rm --gpus all -it --runtime=nvidia --privileged nvcr.io/nvidia/l4t-pytorch:r35.1.0-pth1.13-py3 bash
# jetpack 5.1以后 https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-cuda/tags
docker run --rm --gpus all -it --runtime=nvidia --privileged nvcr.io/nvidia/l4t-cuda:12.6.11-runtime bash
# 这里封装了一个包含pytorch的
docker run --rm --gpus all -it --privileged ccr.ccs.tencentyun.com/cube-studio/l4t-cuda:12.6.11-runtime bash

容器内测试:

ls /dev/nvidia*                  # 与是否启动 --privileged 有关
echo $NVIDIA_VISIBLE_DEVICES     # docker run 的容器是 all,k8s 里面显示的是 tegra

python3 测试(安装 pytorch 包参考:https://pytorch.org/get-started/previous-versions/):

import torch
print(torch.__version__)          # 查看 PyTorch 版本
print(torch.version.cuda)         # 查看编译时用的 CUDA 版本
print(torch.cuda.is_available())  # 检查 CUDA 是否可用
print(torch.cuda.device_count())  # 直接获取 GPU 数量

jetpack 6.2 安装 pytorch:

pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu126

说明:文中 Jetpack / L4T / CUDA / nvidia-container-toolkit / l4t 镜像 tag 等版本号为示例,请按实际刷机版本与 NGC(catalog.ngc.nvidia.com)上的可用 tag 选择。

最后更新 2026-06-30完整文档以官方仓库为准:GitHub Wiki