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


Red Hat AI Inference Server 3.1

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 アクセラレーターのみがサポートされています。

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

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

前提条件

第2章 AI Inference Server とその依存関係の Operator イメージのミラーリング

非接続環境のミラーレジストリーを作成したら、AI Inference Server コンテナーイメージをミラーリングする準備が整います。

前提条件

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

手順

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

  2. 前の手順でプルした NFD Operator、NVIDIA GPU Operator、および AI Inference Server イメージを含む イメージセット設定のカスタムリソース (CR) を作成します。たとえば、次の ImageSetConfiguration CR には、AMD CPU アーキテクチャーと CUDA アクセラレーターのイメージ仕様が含まれています。

    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
    Copy to Clipboard Toggle word wrap
  3. または、クラスターに 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
    Copy to Clipboard Toggle word wrap
  4. 非接続環境でイメージセットをミラーリングします
  5. 更新されたイメージセットを使用するように、非接続クラスターを設定します

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

基盤となるホスト AI アクセラレーターを使用できるようにする Node Feature Discovery Operator と NVIDIA GPU Operator をインストールします。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。
  • 必要な Operator イメージが非接続環境に正常にミラーリングされました。

手順

  1. デフォルトの OperatorHub ソースを無効にします。以下のコマンドを実行します。

    $ oc patch OperatorHub cluster --type json \
        -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
    Copy to Clipboard Toggle word wrap
  2. Node Feature Discovery Operator と NVIDIA GPU Operator の NamespaceOperatorGroup、および Subscription CR を適用します。

    1. Namespace CR を作成します。

      oc apply -f - <<EOF
      apiVersion: v1
      kind: Namespace
      metadata:
        name: nvidia-gpu-operator
      ---
      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:
        name: gpu-operator-certified
        namespace: nvidia-gpu-operator
      spec:
       targetNamespaces:
       - nvidia-gpu-operator
      ---
      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: gpu-operator-certified
        namespace: nvidia-gpu-operator
      spec:
        channel: "stable"
        installPlanApproval: Manual
        name: gpu-operator-certified
        source: certified-operators
        sourceNamespace: openshift-marketplace
      ---
      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
  3. Hugging Face トークンの Secret カスタムリソース (CR) を作成します。

    1. Hugging Face で設定したトークンを使用して HF_TOKEN 変数を設定します。

      $ HF_TOKEN=<your_huggingface_token>
      Copy to Clipboard Toggle word wrap
    2. Red Hat AI Inference Server イメージをデプロイする場所と一致するようにクラスター namespace を設定します。以下に例を示します。

      $ NAMESPACE=rhaiis-namespace
      Copy to Clipboard Toggle word wrap
    3. クラスターに Secret CR を作成します。

      $ oc create secret generic hf-secret --from-literal=HF_TOKEN=$HF_TOKEN -n $NAMESPACE
      Copy to Clipboard Toggle word wrap

検証

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

$ oc get pods
Copy to Clipboard Toggle word wrap

出力例

NAME                                                  READY   STATUS     RESTARTS   AGE
nfd-controller-manager-7f86ccfb58-vgr4x               2/2     Running    0          10m
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

第4章 永続ストレージの設定とモデルの推論

モデルを推論する前に、モデルイメージを保存するために AI Inference Server の永続ストレージを設定する必要があります。

注記

永続ストレージの設定はオプションですが、推奨される手順です。

前提条件

  • 踏み台ホストにミラーリングレジストリーがインストールされている。
  • 非接続クラスターに 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
    Copy to Clipboard Toggle word wrap
    1
    metadata.namespace 値は、Hugging Face Secret CR を設定する namespace と一致する必要があります。
    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