第 4 章 配置持久性存储和推断模型


您应该为 AI Inference Server 配置持久性存储,以便在对模型产生影响前存储模型镜像。

注意

配置持久性存储是一个可选但推荐的步骤。

先决条件

  • 您已在堡垒主机上安装了镜像 registry。
  • 您已在断开连接的集群中安装 Node Feature Discovery Operator 和 NVIDIA GPU Operator。

流程

  1. 在断开连接的 OpenShift Container Platform 集群中,使用网络文件系统(NFS)配置持久性存储
  2. 创建 Deployment 自定义资源(CR)。例如,以下 Deployment CR 使用 AI Inference Server 在 CUDA 加速器上提供 Granite 模型。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: granite
      namespace: rhaiis-namespace 
    1
    
      labels:
        app: granite
    spec:
      replicas: 0
      selector:
        matchLabels:
          app: granite
      template:
        metadata:
          labels:
            app: granite
        spec:
          containers:
            - name: granite
              image: 'registry.redhat.io/rhaiis/vllm-cuda-rhel9@sha256:137ac606b87679c90658985ef1fc9a26a97bb11f622b988fe5125f33e6f35d78'
              imagePullPolicy: IfNotPresent
              command:
                - python
                - '-m'
                - vllm.entrypoints.openai.api_server
              args:
                - '--port=8000'
                - '--model=/mnt/models'
                - '--served-model-name=granite-3.1-2b-instruct-quantized.w8a8'
                - '--tensor-parallel-size=1'
              resources:
                limits:
                  cpu: '10'
                  nvidia.com/gpu: '1'
                requests:
                  cpu: '2'
                  memory: 6Gi
                  nvidia.com/gpu: '1'
              volumeMounts:
                - name: cache-volume
                  mountPath: /mnt/models
                - name: shm
                  mountPath: /dev/shm 
    2
    
          volumes:
            - name: cache-volume
              persistentVolumeClaim:
                claimName: granite-31-w8a8
            - name: shm
              emptyDir:
                medium: Memory
                sizeLimit: 2Gi
          restartPolicy: Always
    1
    metadata.namespace 值必须与配置 Hugging Face Secret CR 的命名空间匹配。
    2
    NVIDIA Collective Communications 库(NCCL)需要 /dev/shm 卷挂载。当 /dev/shm 卷挂载没有设置时,Tensor parallel vLLM 部署会失败。
  3. 为模型推测创建 Service CR。例如:

    apiVersion: v1
    kind: Service
    metadata:
      name: granite
      namespace: rhaiis-namespace
    spec:
      selector:
        app: granite
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8000
  4. 可选。创建 Route CR 以启用对模型的公共访问。例如:

    apiVersion: route.openshift.io/v1
    kind: Route
    metadata:
      name: granite
      namespace: rhaiis-namespace
    spec:
      to:
        kind: Service
        name: granite
      port:
        targetPort: 80
  5. 获取公开路由的 URL:

    $ oc get route granite -n rhaiis-namespace -o jsonpath='{.spec.host}'

    输出示例

    granite-rhaiis-namespace.apps.example.com

  6. 运行以下命令来查询模型:

    curl -X POST http://granite-rhaiis-namespace.apps.example.com/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{
        "model": "granite-3.1-2b-instruct-quantized.w8a8",
        "messages": [{"role": "user", "content": "What is AI?"}],
        "temperature": 0.1
      }'
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部