検索

2.3. CLI を使用した OpenShift Sandboxed Containers ワークロードのデプロイ

download PDF

CLI を使用して、OpenShift Sandboxed Containers のワークロードをデプロイできます。まず、OpenShift Sandboxed Containers Operator をインストールしてから、KataConfig カスタムリソースを作成する必要があります。Sandboxed Containers にワークロードをデプロイする準備ができたら、ワークロード YAML ファイルに runtimeClassName として kata を追加する必要があります。

2.3.1. CLI を使用したSandboxed Containers Operator のインストール

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

前提条件

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

    注記

    OpenShift Sandboxed Containers カタログにサブスクライブすると、openshift-sandboxed-containers-operator namespace の OpenShift Sandboxed Containers Operator にアクセスできるようになります。

手順

  1. OpenShift Sandboxed Containers Operator の Namespace オブジェクトを作成します。

    1. 次のマニフェストを含む Namespace オブジェクト YAML ファイルを作成します。

      apiVersion: v1
      kind: Namespace
      metadata:
        name: openshift-sandboxed-containers-operator
    2. Namespace オブジェクトを作成します。

      $ oc create -f Namespace.yaml
  2. OpenShift Sandboxed Containers Operator の OperatorGroup オブジェクトを作成します。

    1. 次のマニフェストを含む OperatorGroup オブジェクト YAML ファイルを作成します。

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: openshift-sandboxed-containers-operator
        namespace: openshift-sandboxed-containers-operator
      spec:
        targetNamespaces:
        - openshift-sandboxed-containers-operator
    2. OperatorGroup オブジェクトを作成します。

      $ oc create -f OperatorGroup.yaml
  3. Subscription オブジェクトを作成して、Namespace を OpenShift Sandboxed Containers Operator にサブスクライブします。

    1. 次のマニフェストを含む Subscription オブジェクト YAML ファイルを作成します。

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: openshift-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.4.1
    2. Subscription オブジェクトを作成します。

      $ oc create -f Subscription.yaml

これで、OpenShift Sandboxed Containers Operator がクラスターにインストールされました。

注記

上記のオブジェクトファイル名はすべて提案です。他の名前を使用してオブジェクト YAML ファイルを作成できます。

検証

  • Operator が正常にインストールされていることを確認します。

    $ oc get csv -n openshift-sandboxed-containers-operator

    出力例

    NAME                             DISPLAY                                  VERSION  REPLACES     PHASE
    openshift-sandboxed-containers   openshift-sandboxed-containers-operator  1.4.1    1.4.0        Succeeded

2.3.2. CLI を使用した KataConfig カスタムリソースの作成

kataRuntimeClass としてノードにインストールするには、1 つの KataConfig カスタムリソース (CR) を作成する必要があります。KataConfig CR を作成すると、OpenShift サンドボックス化されたコンテナー Operator がトリガーされ、以下が実行されます。

  • QEMU および kata-containers など、必要な RHCOS 拡張を RHCOS ノードにインストールします。
  • CRI-O ランタイムが正しいランタイムハンドラーで設定されていることを確認してください。
  • デフォルト設定で kata という名前の RuntimeClass CR を作成します。これにより、ユーザーは、RuntimeClassName フィールドで CR を参照することにより、kata をランタイムとして使用するようにワークロードを設定できます。この CR は、ランタイムのリソースオーバーヘッドも指定します。
注記

Kata は、デフォルトですべてのワーカーノードにインストールされます。kata を特定のノードにのみ RuntimeClass としてインストールする場合は、それらのノードにラベルを追加し、KataConfig CR の作成時にそのラベルを定義できます。

前提条件

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

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

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

手順

  1. 次のマニフェストで YAML ファイルを作成します。

    apiVersion: kataconfiguration.openshift.io/v1
    kind: KataConfig
    metadata:
      name: cluster-kataconfig
    spec:
      checkNodeEligibility: false 1
      logLevel: info
    1
    kataRuntimeClass として実行するノードの適格性を検出するには、`checkNodeEligibility` を true に設定します。詳細は、「クラスターノードが OpenShift Sandboxed Containers を実行する資格があるかどうかを確認する」を参照してください。
  2. (オプション) 選択したノードにのみ kataRuntimeClass としてインストールする場合は、マニフェストにラベルを含む YAML ファイルを作成します。

    apiVersion: kataconfiguration.openshift.io/v1
    kind: KataConfig
    metadata:
      name: cluster-kataconfig
    spec:
      checkNodeEligibility: false
      logLevel: info
      kataConfigPoolSelector:
        matchLabels:
          <label_key>: '<label_value>' 1
    1
    kataConfigPoolSelector のラベルは単一値のみをサポートします。nodeSelector 構文はサポートされていません。
  3. KataConfig リソースを作成します。

    $ oc create -f cluster-kataconfig.yaml

新しい KataConfig CR が作成され、ワーカーノードに kataRuntimeClass としてインストールし始めます。kata のインストールが完了し、ワーカーノードが再起動するのを待ってから、次の手順に進みます。

重要

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

検証

  • インストールの進捗を監視します。

    $ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"

    Is In Progress の値が false と表示されたら、インストールは完了です。

2.3.3. CLI を使用した Sandboxed Containers へのワークロードのデプロイ

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

Pod テンプレート化されたワークロードを Sandboxed Containers にデプロイするには、ワークロード YAML ファイルに runtimeClassName として kata を追加する必要があります。

前提条件

  • クラスターに Red Hat OpenShift 4.14 がインストールされている。
  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • OpenShift Sandboxed Containers Operator をインストールしている。
  • KataConfig カスタムリソース (CR) を作成している。

手順

  • 任意の Pod テンプレートオブジェクトに runtimeClassName: kata を追加します。

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

    Pod オブジェクトの例

    apiVersion: v1
    kind: Pod
    metadata:
      name: hello-openshift
      labels:
        app: hello-openshift
    spec:
      runtimeClassName: kata
      containers:
        - name: hello-openshift
          image: quay.io/openshift/origin-hello-openshift
          ports:
            - containerPort: 8888
          securityContext:
            privileged: false
            allowPrivilegeEscalation: false
            runAsNonRoot: true
            runAsUser: 1001
            capabilities:
              drop:
                - ALL
            seccompProfile:
              type: RuntimeDefault

Red Hat OpenShift はワークロードを作成し、スケジュールを開始します。

検証

  • Pod テンプレートオブジェクトの runtimeClassName フィールドを調べます。runtimeClassNamekata の場合、ワークロードは OpenShift Sandboxed Containers で実行されています。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.