升级 NVIDIA NIM Operator#

使用 Helm#

由于 Helm 不支持自动升级现有 CRD,您可以通过启用 Helm Hook 或手动方式升级 CRD。

步骤#

默认情况下,Helm Chart 启用 pre-upgrade Helm Hook 在 Operator 升级期间更新 CRD。

  1. 更新 Operator Chart 的信息

    $ helm repo update nvidia
    
  2. 从 Chart 中获取值

    $ helm show values nvidia/k8s-nim-operator --version=v1.0.1 > values-1.0.1.yaml
    
  3. 根据需要更新 values 文件。

  4. 升级 Operator

    $ helm upgrade nim-operator nvidia/k8s-nim-operator -n nim-operator -f values-1.0.1.yaml
    

与 Operator 一起使用的 Helm Hook 使用 Operator 镜像本身。如果 Operator 镜像本身无法成功拉取(例如由于网络错误),则 Hook 将失败。在这种情况下,您需要使用 --no-hooks 参数删除 Chart,以避免由于 Hook 失败而导致删除挂起。

替代方案:手动升级 CRD#

通过此步骤,您可以更新所有现有的 Operator 自定义资源。

  1. 应用自定义资源定义

    $ kubectl apply -f \
        https://raw.githubusercontent.com/NVIDIA/k8s-nim-operator/refs/tags/v1.0.1/deployments/helm/k8s-nim-operator/crds/apps.nvidia.com_nimcaches.yaml
    
    $ kubectl apply -f \
        https://raw.githubusercontent.com/NVIDIA/k8s-nim-operator/refs/tags/v1.0.1/deployments/helm/k8s-nim-operator/crds/apps.nvidia.com_nimpipelines.yaml
    
    $ kubectl apply -f \
        https://raw.githubusercontent.com/NVIDIA/k8s-nim-operator/refs/tags/v1.0.1/deployments/helm/k8s-nim-operator/crds/apps.nvidia.com_nimservices.yaml
    
  2. 更新 Operator Chart 的信息

    $ helm repo update nvidia
    
  3. 从 Chart 中获取值

    $ helm show values nvidia/k8s-nim-operator --version=v1.0.1 > values-1.0.1.yaml
    
  4. 根据需要更新 values 文件。

  5. 升级 Operator

    $ helm upgrade nim-operator nvidia/k8s-nim-operator -n nim-operator -f values-1.0.1.yaml