6.2. IBM Z および IBM LinuxONE への OpenShift Sandboxed Containers のデプロイ


コマンドラインインターフェイス (CLI) を使用して次のタスクを実行することにより、OpenShift sandboxed containers を IBM Z® および IBM® LinuxONE にデプロイできます。

  1. OpenShift Sandboxed Containers Operator を再インストールします。
  2. オプション: libvirt ボリュームを設定します。
  3. オプション: カスタムピア Pod 仮想マシンイメージを作成します。
  4. ピア Pod シークレットを作成します。
  5. ピア Pod の config map を作成します。
  6. Pod 仮想マシンイメージ config map を作成します。
  7. KVM ホストシークレットを作成します。
  8. オプション: カスタムピア Pod 仮想マシンイメージを選択します。
  9. オプション: Kata エージェントポリシーをカスタマイズします。
  10. KataConfig カスタムリソースを作成します。
  11. オプション:各ワーカーノードで実行されている仮想マシンの数を変更します。
  12. OpenShift Sandboxed Containers のワークロードオブジェクトを設定します。

6.2.1. OpenShift Sandboxed Containers Operator のインストール

CLI を使用して、OpenShift Sandboxed Containers Operator をインストールできます。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  1. osc-namespace.yaml マニフェストファイルを作成します。

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap
  2. 以下のコマンドを実行して namespace を作成します。

    $ oc apply -f osc-namespace.yaml
    Copy to Clipboard Toggle word wrap
  3. osc-operatorgroup.yaml マニフェストファイルを作成します。

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: sandboxed-containers-operator-group
      namespace: openshift-sandboxed-containers-operator
    spec:
      targetNamespaces:
      - openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap
  4. 以下のコマンドを実行して Operator グループを作成します。

    $ oc apply -f osc-operatorgroup.yaml
    Copy to Clipboard Toggle word wrap
  5. osc-subscription.yaml マニフェストファイルを作成します。

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: sandboxed-containers-operator
      namespace: openshift-sandboxed-containers-operator
    spec:
      channel: stable
      installPlanApproval: Automatic
      name: sandboxed-containers-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
      startingCSV: sandboxed-containers-operator.v1.9.0
    Copy to Clipboard Toggle word wrap
  6. 次のコマンドを実行して、サブスクリプションを作成します。

    $ oc apply -f osc-subscription.yaml
    Copy to Clipboard Toggle word wrap
  7. 次のコマンドを実行して、Operator が正常にインストールされていることを確認します。

    $ oc get csv -n openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap

    このコマンドが完了するまでに数分かかる場合があります。

  8. 次のコマンドを実行してプロセスを監視します。

    $ watch oc get csv -n openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                             DISPLAY                                  VERSION             REPLACES                   PHASE
    openshift-sandboxed-containers   openshift-sandboxed-containers-operator  1.9.0    1.8.1        Succeeded
    Copy to Clipboard Toggle word wrap

6.2.2. libvirt ボリュームの設定

OpenShift sandboxed containers Operator は、インストール中に KVM ホスト上の libvirt ボリュームとプールを自動的に設定します。必要に応じて、追加の libvirt ボリュームおよびプールを手動で設定または作成できます。

前提条件

  • OpenShift Container Platform Web コンソールまたはコマンドラインを使用して、OpenShift Container Platform クラスターに OpenShift sandboxed containers Operator をインストールしている。
  • KVM ホストの管理者権限がある。
  • KVM ホストに podman がインストールされている。
  • KVM ホストに virt-customize がインストールされている。
  • イメージ用の /var/lib/libvirt/images/ ディレクトリーがある。

手順

  1. KVM ホストにログインします。
  2. 次のコマンドを実行して、libvirt プールの名前を設定します。

    $ export LIBVIRT_POOL=<libvirt_pool>
    Copy to Clipboard Toggle word wrap

    libvirt プロバイダーのシークレットを作成するには、LIBVIRT_POOL 値が必要です。

  3. 次のコマンドを実行して、libvirt ボリュームの名前を設定します。

    $ export LIBVIRT_VOL_NAME=<libvirt_volume>
    Copy to Clipboard Toggle word wrap

    libvirt プロバイダーのシークレットを作成するには、LIBVIRT_VOL_NAME 値が必要です。

  4. 次のコマンドを実行して、デフォルトのストレージプールの場所のパスを設定します。

    $ export LIBVIRT_POOL_DIRECTORY="/var/lib/libvirt/images/"
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを実行して、libvirt プールを作成します。

    $ virsh pool-define-as $LIBVIRT_POOL --type dir --target "$LIBVIRT_POOL_DIRECTORY"
    Copy to Clipboard Toggle word wrap
  6. 次のコマンドを実行して、libvirt プールを開始します。

    $ virsh pool-start $LIBVIRT_POOL
    Copy to Clipboard Toggle word wrap
  7. 次のコマンドを実行して、プールの libvirt ボリュームを作成します。

    $ virsh -c qemu:///system \
      vol-create-as --pool $LIBVIRT_POOL \
      --name $LIBVIRT_VOL_NAME \
      --capacity 20G \
      --allocation 2G \
      --prealloc-metadata \
      --format qcow2
    Copy to Clipboard Toggle word wrap

6.2.3. カスタムピア Pod 仮想マシンイメージの作成

デフォルトの Operator ビルドイメージを使用する代わりに、カスタムピア Pod 仮想マシン (VM) イメージを作成できます。

ピア Pod QCOW2 イメージを使用して Open Container Initiative (OCI) コンテナーを構築します。後で、コンテナーレジストリー URL とイメージパスをピア Pod 仮想マシンイメージ config map に追加します。

手順

  1. Dockerfile.podvm-oci ファイルを作成します。

    FROM scratch
    
    ARG PODVM_IMAGE_SRC
    ENV PODVM_IMAGE_PATH="/image/podvm.qcow2"
    
    COPY $PODVM_IMAGE_SRC $PODVM_IMAGE_PATH
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、Pod 仮想マシン QCOW2 イメージを含むコンテナーを構築します。

    $ docker build -t podvm-libvirt \
      --build-arg PODVM_IMAGE_SRC=<podvm_image_source> \ 
    1
    
      --build-arg PODVM_IMAGE_PATH=<podvm_image_path> \ 
    2
    
      -f Dockerfile.podvm-oci .
    Copy to Clipboard Toggle word wrap
    1
    ホスト上の QCOW2 イメージソースを指定します。
    2
    オプション: デフォルトの /image/podvm.qcow2 を使用しない場合は、QCOW2 イメージのパスを指定します。

6.2.4. ピア Pod シークレットの更新

ピア Pod シークレットを更新する必要があります。

シークレットには、Pod 仮想マシン (VM) イメージとピア Pod インスタンスを作成するための認証情報が保存されます。

デフォルトでは、OpenShift Sandboxed Containers Operator はクラスターの作成に使用される認証情報に基づいてシークレットを作成します。ただし、異なる認証情報を使用するシークレットを手動で作成することはできます。

前提条件

  • LIBVIRT_URI。この値は、libvirt ネットワークのデフォルトのゲートウェイ IP アドレスです。この値を取得するには、libvirt ネットワーク設定を確認してください。

    注記

    libvirt がデフォルトのブリッジ仮想ネットワークを使用する場合は、以下のコマンドを実行して LIBVIRT_URI を取得できます。

    $ virtint=$(bridge_line=$(virsh net-info default | grep Bridge);  echo "${bridge_line//Bridge:/}" | tr -d [:blank:])
    
    $ LIBVIRT_URI=$( ip -4 addr show $virtint | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
    
    $ LIBVIRT_GATEWAY_URI="qemu+ssh://root@${LIBVIRT_URI}/system?no_verify=1"
    Copy to Clipboard Toggle word wrap
  • REDHAT_OFFLINE_TOKENRed Hat API トークン で RHEL イメージをダウンロードするためにこのトークンを生成している。

手順

  1. 次の例に従って peer-pods-secret.yaml マニフェストファイルを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: peer-pods-secret
      namespace: openshift-sandboxed-containers-operator
    type: Opaque
    stringData:
      CLOUD_PROVIDER: "libvirt"
      LIBVIRT_URI: "<libvirt_gateway_uri>" 
    1
    
      REDHAT_OFFLINE_TOKEN: "<rh_offline_token>" 
    2
    Copy to Clipboard Toggle word wrap
    1
    libvirt URI を指定します。
    2
    Operator ビルドイメージに必要な Red Hat オフライントークンを指定します。
  2. 以下のコマンドを実行してシークレットを作成します。

    $ oc apply -f peer-pods-secret.yaml
    Copy to Clipboard Toggle word wrap

6.2.5. ピア Pod config map の作成

OpenShift sandboxed containers のピア Pod config map を作成する必要があります。

手順

  1. 以下の例に従って peer-pods-cm.yaml マニフェストファイルを作成します。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: peer-pods-cm
      namespace: openshift-sandboxed-containers-operator
    data:
      CLOUD_PROVIDER: "libvirt"
      PEERPODS_LIMIT_PER_NODE: "10" 
    1
    
      LIBVIRT_POOL: "<libvirt_pool>" 
    2
    
      LIBVIRT_VOL_NAME: "<libvirt_volume>" 
    3
    
      LIBVIRT_DIR_NAME: "/var/lib/libvirt/images/<directory_name>" 
    4
    
      LIBVIRT_NET: "default" 
    5
    
      DISABLECVM: "true"
    Copy to Clipboard Toggle word wrap
    1
    ノードごとに作成できるピア Pod の最大数を指定します。デフォルト値は 10 です。
    2
    libvirt プールを指定します。libvirt プールを手動で設定した場合は、KVM ホスト設定と同じ名前を使用します。
    3
    libvirt ボリューム名を指定します。libvirt ボリュームを手動で設定した場合は、KVM ホスト設定と同じ名前を使用します。
    4
    .qcow2.raw ファイルなどの仮想マシンのディスクイメージを保存するための libvirt ディレクトリーを指定します。libvirt に読み取りおよび書き込みアクセス権限があることを確認するには、libvirt ストレージディレクトリーのサブディレクトリーを使用します。デフォルトは /var/lib/libvirt/images/ です。
    5
    オプション: デフォルトのネットワークを使用しない場合は、libvirt ネットワークを指定します。
  2. 以下のコマンドを実行して config map を作成します。

    $ oc apply -f peer-pods-cm.yaml
    Copy to Clipboard Toggle word wrap

6.2.6. ピア Pod 仮想マシンイメージ config map の作成

ピア Pod 仮想マシン (VM) イメージの config map を作成する必要があります。

前提条件

  • Red Hat Hybrid Cloud Console を使用してアクティベーションキーを作成する。
  • オプション (Cloud API アダプターのカスタムイメージを使用する場合): イメージの名前、URL、ブランチまたはタグ。

手順

  1. 次の例に従って、libvirt-podvm-image-cm.yaml マニフェストを作成します。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: libvirt-podvm-image-cm
      namespace: openshift-sandboxed-containers-operator
    data:
      PODVM_DISTRO: "rhel"
      DOWNLOAD_SOURCES: "no" 
    1
    
      CAA_SRC: "https://github.com/confidential-containers/cloud-api-adaptor" 
    2
    
      CAA_REF: "main" 
    3
    
      CONFIDENTIAL_COMPUTE_ENABLED: "yes"
      UPDATE_PEERPODS_CM: "yes"
      ORG_ID: "<rhel_organization_id>"
      ACTIVATION_KEY: "<rhel_activation_key>" 
    4
    
      IMAGE_NAME: "<podvm_libvirt_image>" 
    5
    
      PODVM_IMAGE_URI: "oci::<image_repo_url>:<image_tag>::<image_path>" 
    6
    
      SE_BOOT: "true" 
    7
    
      BASE_OS_VERSION: "<rhel_image_os_version>" 
    8
    Copy to Clipboard Toggle word wrap
    1
    カスタム Cloud API アダプターソースを使用して Pod 仮想マシンイメージを構築する場合は、yes を指定します。
    2
    オプション: Cloud API アダプターのカスタムイメージの URL を指定します。
    3
    オプション: Cloud API アダプターのカスタムイメージのブランチまたはタグを指定します。
    4
    RHEL アクティベーションキーを指定します。
    5
    カスタムピア Pod 仮想マシンイメージ名を指定します。
    6
    オプション: カスタムピア Pod 仮想マシンイメージを作成した場合は、コンテナーレジストリー URL、イメージタグ、およびイメージパス (デフォルト: /image/podvm.qcow2) を指定します。それ以外の場合は、値を "" に設定します。
    7
    デフォルト値 true は、デフォルトの Operator ビルドイメージに対して IBM Secure Execution を有効にします。カスタムピア Pod 仮想マシンイメージを使用する場合は、false に設定します。
    8
    RHEL イメージのオペレーティングシステムのバージョンを指定します。IBM Z® Secure Execution は RHEL 9.5 以降のバージョンをサポートします。
  2. 以下のコマンドを実行して config map を作成します。

    $ oc apply -f libvirt-podvm-image-cm.yaml
    Copy to Clipboard Toggle word wrap

    libvirt プロバイダー用に libvirt Pod 仮想マシンイメージ config map が作成されます。

6.2.7. KVM ホストシークレットの作成

KVM ホストのシークレットを作成する必要があります。

手順

  1. 次のコマンドを実行して、SSH キーペアを生成します。

    $ ssh-keygen -f ./id_rsa -N ""
    Copy to Clipboard Toggle word wrap
  2. SSH 公開鍵を KVM ホストにコピーします。

    $ ssh-copy-id -i ./id_rsa.pub <KVM_HOST_IP> 
    1
    Copy to Clipboard Toggle word wrap
    1
    ピア Pod 仮想マシンが実行されている KVM ホストまたは LPAR の IP アドレスを指定します。たとえば、192.168.122.1 です。
  3. 以下のコマンドを実行して Secret オブジェクトを作成します。

    $ oc create secret generic ssh-key-secret \
      -n openshift-sandboxed-containers-operator \
      --from-file=id_rsa.pub=./id_rsa.pub \
      --from-file=id_rsa=./id_rsa
    Copy to Clipboard Toggle word wrap
  4. 作成した SSH 鍵を削除します。

    $ shred --remove id_rsa.pub id_rsa
    Copy to Clipboard Toggle word wrap

6.2.8. カスタムピア Pod 仮想マシンイメージの選択

Pod マニフェストにアノテーションを追加することで、ワークロード要件に合わせてカスタマイズされたカスタムピア Pod 仮想マシン (VM) イメージを選択できます。カスタムイメージは、ピア Podconfig map で指定されたデフォルトイメージをオーバーライドします。libvirt プールに新しい libvirt ボリュームを作成し、カスタムピア Pod 仮想マシンイメージを新しいボリュームにアップロードします。次に、カスタムピア Pod 仮想マシンイメージを使用するように Pod マニフェストを更新します。

前提条件

  • 使用予定のカスタム Pod 仮想マシンイメージの ID が利用でき、クラウドプロバイダーまたはハイパーバイザーと互換性がある。

手順

  1. 次のコマンドを実行して、libvirt プールの名前を設定します。

    $ export LIBVIRT_POOL=<libvirt_pool> 
    1
    Copy to Clipboard Toggle word wrap
    1
    既存の libvirt プール名を指定します。
  2. 次のコマンドを実行して、新しい libvirt ボリュームの名前を設定します。

    $ export LIBVIRT_VOL_NAME=<new_libvirt_volume>
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、プールの libvirt ボリュームを作成します。

    $ virsh -c qemu:///system \
      vol-create-as --pool $LIBVIRT_POOL \
      --name $LIBVIRT_VOL_NAME \
      --capacity 20G \
      --allocation 2G \
      --prealloc-metadata \
      --format qcow2
    Copy to Clipboard Toggle word wrap
  4. カスタムピア Pod 仮想マシンイメージを libvirt ボリュームにアップロードします。

    $ virsh -c qemu:///system vol-upload \
      --vol $LIBVIRT_VOL_NAME <custom_podvm_image.qcow2> \ 
    1
    
      --pool $LIBVIRT_POOL --sparse
    Copy to Clipboard Toggle word wrap
    1
    カスタムピア Pod 仮想マシンイメージ名を指定します。
  5. 次の例に従って、pod-manifest.yaml マニフェストファイルを作成します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-manifest
      annotations:
        io.katacontainers.config.hypervisor.image: "<new_libvirt_volume>" 
    1
    
    spec:
      runtimeClassName: kata-remote 
    2
    
      containers:
      - name: <example_container> 
    3
    
        image: registry.access.redhat.com/ubi9/ubi:9.3
        command: ["sleep", "36000"]
    Copy to Clipboard Toggle word wrap
    1
    カスタムピア Pod 仮想マシンイメージをアップロードした libvirt ボリューム名を指定します。
    2
    ピア Pod を作成するには、runtimeClassName フィールドが kata-remote に設定されていることを確認します。
    3
    コンテナー名を指定します。
  6. 以下のコマンドを実行して Pod を作成します。

    $ oc apply -f pod-manifest.yaml
    Copy to Clipboard Toggle word wrap

6.2.9. Kata エージェントポリシーのカスタマイズ

Kata エージェントポリシーは、Kata ランタイムで実行されている Pod のエージェント API 要求を制御するセキュリティーメカニズムです。このポリシーは Rego で記述され、Pod 仮想マシン (VM) 内の Kata エージェントによって適用され、許可または拒否される操作を決定します。

セキュリティーが問題にならない開発やテストなどの特定のユースケースでは、デフォルトのポリシーをカスタムポリシーで上書きできます。たとえば、コントロールプレーンを信頼できる環境で実行する場合があります。カスタムポリシーは、複数の方法で適用できます。

  • ポリシーを Pod VM イメージに組み込む。
  • ピア Pod の config map にパッチを適用する。
  • ワークロード Pod YAML にアノテーションを追加する。

実稼働システムの場合、initdata を使用して Kata エージェントポリシーをオーバーライドする方法が推奨されます。以下の手順では、io.katacontainers.config.agent.policy アノテーションを使用してカスタムポリシーを個々の Pod に適用します。ポリシーは Base64 でエンコードされた Rego 形式で提供されます。このアプローチでは、Pod 仮想マシンイメージを変更せずに、Pod 作成時にデフォルトのポリシーをオーバーライドします。

注記

カスタムポリシーは、デフォルトのポリシーを完全に置き換えます。特定の API のみを変更するには、完全なポリシーを含め、関連するルールを調整します。

手順

  1. カスタムポリシーを含む policy.rego ファイルを作成します。次の例では、デモ用に execlog を有効にした、設定可能なすべての API を示しています。

    package agent_policy
    
    import future.keywords.in
    import input
    
    default CopyFileRequest := false
    default CreateContainerRequest := false
    default CreateSandboxRequest := true
    default DestroySandboxRequest := true
    default ExecProcessRequest := true  # Enabled to allow exec API
    default GetOOMEventRequest := true
    default GuestDetailsRequest := true
    default OnlineCPUMemRequest := true
    default PullImageRequest := true
    default ReadStreamRequest := true   # Enabled to allow log API
    default RemoveContainerRequest := true
    default RemoveStaleVirtiofsShareMountsRequest := true
    default SignalProcessRequest := true
    default StartContainerRequest := true
    default StatsContainerRequest := true
    default TtyWinResizeRequest := true
    default UpdateEphemeralMountsRequest := true
    default UpdateInterfaceRequest := true
    default UpdateRoutesRequest := true
    default WaitProcessRequest := true
    default WriteStreamRequest := false
    Copy to Clipboard Toggle word wrap

    このポリシーは、exec (ExecProcessRequest) および log (ReadStreamRequest) API を有効にします。必要に応じて、true または false の値を調整してポリシーをさらにカスタマイズします。

  2. 次のコマンドを実行して、policy.rego ファイルを Base64 でエンコードされた文字列に変換します。

    $ base64 -w0 policy.rego
    Copy to Clipboard Toggle word wrap

    yaml ファイルで使用するために出力を保存します。

  3. Base64 でエンコードされたポリシーを my-pod.yaml Pod 仕様ファイルに追加します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: <pod_name>
      annotations:
        io.katacontainers.config.agent.policy: <base64_encoded_policy>
    spec:
      runtimeClassName: kata-remote
      containers:
      - name: <container_name>
        image: registry.access.redhat.com/ubi9/ubi:latest
        command:
        - sleep
        - "36000"
        securityContext:
          privileged: false
          seccompProfile:
            type: RuntimeDefault
    Copy to Clipboard Toggle word wrap
  4. 以下のコマンドを実行して Pod マニフェストを適用します。

    $ oc apply -f my-pod.yaml
    Copy to Clipboard Toggle word wrap

6.2.10. KataConfig カスタムリソースの作成

ワーカーノードに kata-remote をランタイムクラスとしてインストールするには、KataConfig カスタムリソース (CR) を作成する必要があります。

KataConfig CR を作成すると、OpenShift Sandboxed Containers Operator がトリガーされ、以下が実行されます。

  • デフォルト設定で kata-remote という名前の RuntimeClass CR を作成します。これにより、RuntimeClassName フィールドの CR を参照して、kata-remote をランタイムとして使用するようにワークロードを設定できるようになります。この CR は、ランタイムのリソースオーバーヘッドも指定します。

OpenShift Sandboxed Containers は、kata-remote をプライマリーランタイムとしてではなく、クラスター上の セカンダリーオプション のランタイムとしてインストールします。

重要

KataConfig CR を作成すると、ワーカーノードが自動的に再起動します。再起動には 10 分から 60 分以上かかる場合があります。再起動時間を妨げる要因は次のとおりです。

  • より多くのワーカーノードを持つ大規模な OpenShift Container Platform デプロイメント。
  • BIOS および診断ユーティリティーが有効である。
  • SSD ではなくハードディスクドライブにデプロイしている。
  • 仮想ノードではなく、ベアメタルなどの物理ノードにデプロイしている。
  • CPU とネットワークが遅い。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  1. 以下の例に従って example-kataconfig.yaml マニフェストファイルを作成します。

    apiVersion: kataconfiguration.openshift.io/v1
    kind: KataConfig
    metadata:
      name: example-kataconfig
    spec:
      enablePeerPods: true
      logLevel: info
    #  kataConfigPoolSelector:
    #    matchLabels:
    #      <label_key>: '<label_value>' 
    1
    Copy to Clipboard Toggle word wrap
    1
    オプション: 特定のノードに kata-remote をインストールするためにノードラベルを適用した場合は、キーと値を指定します (例: osc: 'true')
  2. 次のコマンドを実行して、KataConfig CR を作成します。

    $ oc apply -f example-kataconfig.yaml
    Copy to Clipboard Toggle word wrap

    新しい KataConfig CR が作成され、ワーカーノードに kata-remote がランタイムクラスとしてインストールされます。

    インストールを確認する前に、kata-remote のインストールが完了し、ワーカーノードが再起動するまで待ちます。

  3. 次のコマンドを実行して、インストールの進行状況を監視します。

    $ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
    Copy to Clipboard Toggle word wrap

    kataNodes の下にあるすべてのワーカーのステータスが installed で、理由を指定せずに InProgress の条件が False の場合、kata-remote はクラスターにインストールされます。

  4. 次のコマンドを実行して、ピア Pod イメージが構築され、libvirt ボリュームにアップロードされたことを確認します。

    $ oc describe configmap peer-pods-cm -n openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap

    出力例

    Name: peer-pods-cm
    Namespace: openshift-sandboxed-containers-operator
    Labels: <none>
    Annotations: <none>
    
    Data
    ====
    CLOUD_PROVIDER: libvirt
    
    BinaryData
    ====
    Events: <none>
    Copy to Clipboard Toggle word wrap

  5. 次のコマンドを実行して、kata-oc マシン設定プールの進行状況を監視し、UPDATEDMACHINECOUNTMACHINECOUNT と等しいときに UPDATED 状態であることを確認します。

    $ watch oc get mcp/kata-oc
    Copy to Clipboard Toggle word wrap
  6. 次のコマンドを実行してデーモンセットを確認します。

    $ oc get -n openshift-sandboxed-containers-operator ds/osc-caa-ds
    Copy to Clipboard Toggle word wrap
  7. 次のコマンドを実行してランタイムクラスを確認します。

    $ oc get runtimeclass
    Copy to Clipboard Toggle word wrap

    出力例

    NAME             HANDLER          AGE
    kata             kata             152m
    kata-remote      kata-remote      152m
    Copy to Clipboard Toggle word wrap

6.2.11. ノードあたりのピア Pod 仮想マシン数の変更

peerpodConfig カスタムリソース(CR)を編集して、ノードごとにピア Pod 仮想マシン(VM)の制限を変更できます。

手順

  1. 次のコマンドを実行して、現在の制限を確認します。

    $ oc get peerpodconfig peerpodconfig-openshift -n openshift-sandboxed-containers-operator \
    -o jsonpath='{.spec.limit}{"\n"}'
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、peerpodConfig CR の limit 属性を変更します。

    $ oc patch peerpodconfig peerpodconfig-openshift -n openshift-sandboxed-containers-operator \
    --type merge --patch '{"spec":{"limit":"<value>"}}' 
    1
    Copy to Clipboard Toggle word wrap
    1
    <value> は、定義する制限に置き換えます。

6.2.12. ワークロードオブジェクトの設定

次の Pod テンプレートオブジェクトのランタイムクラスとして kata-remote を設定して、OpenShift sandboxed containers のワークロードオブジェクトを設定する必要があります。

  • Pod オブジェクト
  • ReplicaSet オブジェクト
  • ReplicationController オブジェクト
  • StatefulSet オブジェクト
  • Deployment オブジェクト
  • DeploymentConfig オブジェクト
重要

Operator namespace にワークロードをデプロイしないでください。これらのリソース専用の namespace を作成します。

前提条件

  • KataConfig カスタムリソース (CR) を作成している。

手順

  1. 次の例のように、各 Pod テンプレート化されたワークロードオブジェクトのマニフェストに spec.runtimeClassName: kata-remote を追加します。

    apiVersion: v1
    kind: <object>
    # ...
    spec:
      runtimeClassName: kata-remote
    # ...
    Copy to Clipboard Toggle word wrap

    OpenShift Container Platform はワークロードオブジェクトを作成し、スケジュールを開始します。

検証

  • Pod テンプレートオブジェクトの spec.runtimeClassName フィールドを検査します。値が kata-remote の場合、ワークロードはピア Pod を使用して OpenShift Sandboxed Containers で実行されています。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat