非接続環境での Red Hat AI Inference Server のデプロイ


Red Hat AI Inference Server 3.2

OpenShift Container Platform とオフラインのミラーイメージレジストリーを使用して、非接続環境に Red Hat AI Inference Server をデプロイします。

Red Hat AI Documentation Team

概要

非接続環境でモデルのサービングと推論を行うために Red Hat AI Inference Server を使用する方法を学びます。

はじめに

OpenShift Container Platform をインストールし、非接続環境でミラーリングコンテナーイメージレジストリーを設定することで、外部のインターネットに接続せずに、Red Hat AI Inference Server を使用して大規模言語モデルを推論できます。

重要

現在、非接続環境の OpenShift Container Platform では、NVIDIA CUDA AI アクセラレーターのみがサポートされています。

第1章 非接続環境でのミラーレジストリーの設定

非接続環境でコンテナーイメージをサービングするには、踏み台ホストで非接続ミラーレジストリーを設定する必要があります。踏み台ホストは、非接続環境とインターネット間の安全なゲートウェイとして機能します。次に、Red Hat のオンラインイメージレジストリーからイメージをミラーリングし、非接続環境で提供します。

前提条件

第2章 モデル推論に必要なイメージのミラーリング

非接続環境のミラーレジストリーを作成したら、必要な AI Inference Server イメージ、AI アクセラレーター Operator イメージ、および言語モデルイメージをミラーリングする準備が整います。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。
  • 踏み台ホストにミラーリングレジストリーがインストールされている。

手順

  1. ご使用の環境に対応する次のイメージのバージョンを見つけて、podman を使用してイメージをプルします。

  2. 前の手順でプルした NFD Operator、NVIDIA GPU Operator、および AI Inference Server イメージを含む イメージセット設定のカスタムリソース (CR) を作成します。たとえば、次の ImageSetConfiguration CR を imageset-config.yaml ファイルとして保存します。

    apiVersion: mirror.openshift.io/v2alpha1
    kind: ImageSetConfiguration
    mirror:
      operators:
      # Node Feature Discovery (NFD) Operator
      # Helps Openshift detect hardware capabilities like GPUs
      - catalog: registry.redhat.io/openshift4/ose-cluster-nfd-operator:latest
        packages:
          - name: nfd
            defaultChannel: stable
            channels:
              - name: stable
    
      # GPU Operator
      # Manages NVIDIA GPUs on OpenShift
      - catalog: registry.connect.redhat.com/nvidia/gpu-operator-bundle:latest
        packages:
          - name: gpu-operator-certified
            defaultChannel: stable
            channels:
              - name: stable
      additionalImages:
      # Red Hat AI Inference Server image
      - name: registry.redhat.io/rhaiis/vllm-cuda-rhel9:latest
      # Model image
      - name: registry.redhat.io/rhelai1/granite-3-1-8b-instruct-quantized-w8a8:1.5
    Copy to Clipboard Toggle word wrap
  3. 必要なイメージをミラーレジストリーにミラーリングします。以下のコマンドを実行します。

    $ oc mirror --config imageset-config.yaml docker://<target_mirror_registry_url> --registry-config <path_to_pull_secret_json>
    Copy to Clipboard Toggle word wrap
  4. または、クラスターに NFD および NVIDIA GPU Operator がすでにインストールされている場合は、AI Inference Server およびモデルイメージのみを設定する ImageSetConfiguration CR を作成します。

    apiVersion: mirror.openshift.io/v2alpha1
    kind: ImageSetConfiguration
    mirror:
      additionalImages:
      - name: registry.redhat.io/rhaiis/vllm-cuda-rhel9:latest
      - registry.redhat.io/rhelai1/granite-3-1-8b-instruct-quantized-w8a8:1.5
    Copy to Clipboard Toggle word wrap
  5. 非接続環境でイメージセットをミラーリングします
  6. 更新されたイメージセットを使用するように、非接続クラスターを設定します

第3章 Node Feature Discovery Operator のインストール

クラスターで使用可能な AI アクセラレーターをクラスターが使用できるように、Node Feature Discovery Operator をインストールします。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. Node Feature Discovery Operator の Namespace CR を作成します。

    oc apply -f - <<EOF
    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-nfd
      labels:
        name: openshift-nfd
        openshift.io/cluster-monitoring: "true"
    EOF
    Copy to Clipboard Toggle word wrap
  2. OperatorGroup CR を作成します。

    oc apply -f - <<EOF
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      generateName: openshift-nfd-
      name: openshift-nfd
      namespace: openshift-nfd
    spec:
      targetNamespaces:
      - openshift-nfd
    EOF
    Copy to Clipboard Toggle word wrap
  3. Subscription CR を作成します。

    oc apply -f - <<EOF
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: nfd
      namespace: openshift-nfd
    spec:
      channel: "stable"
      installPlanApproval: Automatic
      name: nfd
      source: redhat-operators
      sourceNamespace: openshift-marketplace
    EOF
    Copy to Clipboard Toggle word wrap

検証

次のコマンドを実行して、Node Feature Discovery Operator のデプロイメントが成功したことを確認します。

$ oc get pods -n openshift-nfd
Copy to Clipboard Toggle word wrap

出力例

NAME                                      READY   STATUS    RESTARTS   AGE
nfd-controller-manager-7f86ccfb58-vgr4x   2/2     Running   0          10m
Copy to Clipboard Toggle word wrap

第4章 NVIDIA GPU Operator のインストール

クラスターで使用可能な基盤となる NVIDIA CUDA AI アクセラレーターを使用するには、NVIDIA GPU Operator をインストールします。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。
  • Node Feature Discovery Operator がインストールされている。

手順

  1. NVIDIA GPU Operator の Namespace CR を作成します。

    oc apply -f - <<EOF
    apiVersion: v1
    kind: Namespace
    metadata:
      name: nvidia-gpu-operator
    EOF
    Copy to Clipboard Toggle word wrap
  2. OperatorGroup CR を作成します。

    oc apply -f - <<EOF
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: gpu-operator-certified
      namespace: nvidia-gpu-operator
    spec:
     targetNamespaces:
     - nvidia-gpu-operator
    EOF
    Copy to Clipboard Toggle word wrap
  3. Subscription CR を作成します。

    oc apply -f - <<EOF
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: gpu-operator-certified
      namespace: nvidia-gpu-operator
    spec:
      channel: "stable"
      installPlanApproval: Manual
      name: gpu-operator-certified
      source: certified-operators
      sourceNamespace: openshift-marketplace
    EOF
    Copy to Clipboard Toggle word wrap

検証

次のコマンドを実行して、NVIDIA GPU Operator のデプロイメントが成功したことを確認します。

$ oc get pods -n nvidia-gpu-operator
Copy to Clipboard Toggle word wrap

出力例

NAME                                                  READY   STATUS     RESTARTS   AGE
gpu-feature-discovery-c2rfm                           1/1     Running    0          6m28s
gpu-operator-84b7f5bcb9-vqds7                         1/1     Running    0          39m
nvidia-container-toolkit-daemonset-pgcrf              1/1     Running    0          6m28s
nvidia-cuda-validator-p8gv2                           0/1     Completed  0          99s
nvidia-dcgm-exporter-kv6k8                            1/1     Running    0          6m28s
nvidia-dcgm-tpsps                                     1/1     Running    0          6m28s
nvidia-device-plugin-daemonset-gbn55                  1/1     Running    0          6m28s
nvidia-device-plugin-validator-z7ltr                  0/1     Completed  0          82s
nvidia-driver-daemonset-410.84.202203290245-0-xxgdv   2/2     Running    0          6m28s
nvidia-node-status-exporter-snmsm                     1/1     Running    0          6m28s
nvidia-operator-validator-6pfk6                       1/1     Running    0          6m28s
Copy to Clipboard Toggle word wrap

第5章 非接続環境でモデルを提供する推論

非接続の OpenShift Container Platform 環境にデプロイされた Red Hat AI Inference Server を使用して、クラスターの永続ストレージから言語モデルの推論を行います。

前提条件

  • 非接続クラスターからアクセスできる踏み台ホストにミラーレジストリーがインストールされている。
  • モデルと Red Hat AI Inference Server イメージがミラーレジストリーに追加されている。
  • 非接続クラスターに Node Feature Discovery Operator と NVIDIA GPU Operator がインストールされている。

手順

  1. 非接続クラスターで、ネットワークファイルシステム (NFS) を使用して永続ストレージを設定し、設定した永続ストレージでモデルを使用できるようにします。

    注記

    詳細は、NFS を使用した永続ストレージ を参照してください。

  2. Deployment カスタムリソース (CR) を作成します。たとえば、次の Deployment CR は、AI Inference Server を使用して CUDA アクセラレーター上で Granite モデルを提供します。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: granite
      namespace: rhaiis-namespace
      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' 
    1
    
                - '--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
    Copy to Clipboard Toggle word wrap
    1
    ダウンロードしたモデルは、設定された永続ボリューム内のこのマウントされた場所から利用できるようにしてください。
    2
    NVIDIA Collective Communications Library (NCCL) では、/dev/shm ボリュームマウントが必要です。/dev/shm ボリュームマウントが設定されていない場合、Tensor 並列 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
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
  5. 公開されたルートの URL を取得します。

    $ oc get route granite -n rhaiis-namespace -o jsonpath='{.spec.host}'
    Copy to Clipboard Toggle word wrap

    出力例

    granite-rhaiis-namespace.apps.example.com
    Copy to Clipboard Toggle word wrap

  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
      }'
    Copy to Clipboard Toggle word wrap

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat