部署 Cloud Native Service Add-On Pack#

NVIDIA Cloud Native Stack

本指南将逐步介绍在上游 Kubernetes 部署(例如 NVIDIA Cloud Native Stack)上部署和设置 NVIDIA Cloud Native Service Add-On Pack 的步骤。这是最简单的部署配置,其中提供的所有组件都直接安装在集群上,无需与外部服务集成。

注意

使用上游 Kubernetes 的 NVIDIA Cloud Native Stack 部署仅应用于评估和开发目的。它并非设计用于生产环境。

  1. 以下步骤假定已满足要求部分的要求,并且已按照上一节中的步骤设置了 NVIDIA Cloud Native Stack K8S 集群。

  2. 确保 kubeconfig 可用,并通过 KUBECONFIG 环境变量或您的用户默认位置 (.kube/config) 进行设置。

  3. 确保 FQDN 和通配符 DNS 条目可用,并且对于创建的 K8S 集群是可解析的。

  4. 从 Enterprise Catalog 将 NVIDIA Cloud Native Service Add-on Pack 下载到您从此处提供的实例上。

    ngc registry resource download-version "nvaie/nvidia_cnpack:0.2.1"
    

    注意

    如果您仍然需要安装和设置带有 API 密钥的 NGC CLI,请通过自动加载资源来执行此操作。说明可以在此处找到。

  5. 使用以下命令导航到安装程序的目录

    cd nvidia_cnpack_v0.2.1
    
  6. 使用以下模板创建安装的配置文件作为最小配置文件。有关所有可用配置选项的完整详细信息,请参考附录的高级用法部分

    注意

    请务必更改 wildcardDomain 字段,以匹配在要求部分中描述的 DNS FQDN 和通配符记录。

     1apiVersion: v1alpha1
     2kind: NvidiaPlatform
     3spec:
     4  platform:
     5    wildcardDomain: "*.my-cluster.my-domain.com"
     6    externalPort: 443
     7  ingress:
     8    enabled: true
     9  postgres:
    10    enabled: true
    11  certManager:
    12    enabled: true
    13  trustManager:
    14    enabled: true
    15  keycloak:
    16    databaseStorage:
    17      accessModes:
    18        - ReadWriteOnce
    19      resources:
    20        requests:
    21          storage: 1G
    22      storageClassName: local-path
    23      volumeMode: Filesystem
    24  prometheus:
    25    storage:
    26      accessModes:
    27        - ReadWriteOnce
    28      resources:
    29        requests:
    30          storage: 1G
    31      storageClassName: local-path
    32      volumeMode: Filesystem
    33  grafana:
    34    enabled: true
    35  elastic:
    36    enabled: true
    

    注意

    如果您安装了 local-path-provisioner,则 storageClassName 可以保留显示的值:local-path

  7. 通过以下命令使安装程序可执行

    chmod +x ./nvidia-cnpack-linux-x86_64
    
  8. 在实例上运行以下命令以设置 NVIDIA Cloud Native Service Add-on Pack

    ./nvidia-cnpack-linux-x86_64 create -f config.yaml
    
  9. 安装完成后,通过以下命令检查所有 Pod 是否运行状况良好

    kubectl get pods -A
    

    输出应类似于以下屏幕截图

    _images/image2.png
  10. 作为安装的一部分,安装程序将创建 nvidia-platform 和 nvidia-monitoring 命名空间,其中包含与已部署服务交互所需的大多数组件和信息。

    • 默认 Keycloak 实例 URL 为:https://auth.my-cluster.my-domain.com

    • 默认管理员凭据可以在 nvidia-platform 命名空间中找到,位于名为 keycloak-initial-admin 的 secret 中,通过以下命令

    1kubectl get secret keycloak-initial-admin -n nvidia-platform -o jsonpath='{.data.username}' | base64 -d
    2kubectl get secret keycloak-initial-admin -n nvidia-platform -o jsonpath='{.data.password}' | base64 -d
    
    • 默认 Grafana 实例 URL 为:https://dashboards.my-cluster.my-domain.com

    • 默认 Grafana 凭据可以在 nvidia-monitoring 命名空间中找到,位于名为 grafana-admin-credentials 的 secret 中,通过以下命令

    1kubectl get secret grafana-admin-credentials -n nvidia-monitoring -o jsonpath='{.data.GF_SECURITY_ADMIN_USER}' | base64 -d
    2kubectl get secret grafana-admin-credentials -n nvidia-monitoring -o jsonpath='{.data.GF_SECURITY_ADMIN_PASSWORD}' | base64 -d
    
  11. 您可以根据您的用例配置集群上安装的组件和服务。具体示例可以在 NVIDIA AI 工作流指南中找到。