2.3. CLI を使用した OpenShift サンドボックスコンテナーワークロードのデプロイ
CLI を使用して、OpenShift Sandboxed Containers のワークロードをデプロイできます。まず、OpenShift Sandboxed Containers Operator をインストールしてから、KataConfig カスタムリソースを作成する必要があります。Sandboxed Containers にワークロードをデプロイする準備ができたら、ワークロード YAML ファイルに runtimeClassName として kata を追加する必要があります。
2.3.1. CLI を使用したSandboxed Containers Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform CLI から OpenShift サンドボックスコンテナー Operator をインストールできます。
前提条件
- クラスターに OpenShift Container Platform 4.15 がインストールされている。
IBM Z または IBM® LinuxONE へのインストールには、OpenShift Container Platform 4.14 以降がインストールされている。
重要IBM Z でのピア Pod を使用した OpenShift Sandboxed Containers ワークロードのデプロイは、テクノロジープレビューとしてのみ提供されています。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 OpenShift Sandboxed Containers カタログにサブスクライブしている。
注記OpenShift Sandboxed Containers カタログにサブスクライブすると、
openshift-sandboxed-containers-operatornamespace の OpenShift Sandboxed Containers Operator にアクセスできるようになります。
手順
OpenShift Sandboxed Containers Operator の
Namespaceオブジェクトを作成します。次のマニフェストを含む
Namespaceオブジェクト YAML ファイルを作成します。apiVersion: v1 kind: Namespace metadata: name: openshift-sandboxed-containers-operator
apiVersion: v1 kind: Namespace metadata: name: openshift-sandboxed-containers-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Namespaceオブジェクトを作成します。oc create -f Namespace.yaml
$ oc create -f Namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Sandboxed Containers Operator の
OperatorGroupオブジェクトを作成します。次のマニフェストを含む
OperatorGroupオブジェクト YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroupオブジェクトを作成します。oc create -f OperatorGroup.yaml
$ oc create -f OperatorGroup.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Subscriptionオブジェクトを作成して、Namespaceを OpenShift Sandboxed Containers Operator にサブスクライブします。次のマニフェストを含む
Subscriptionオブジェクト YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Subscriptionオブジェクトを作成します。oc create -f Subscription.yaml
$ oc create -f Subscription.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、OpenShift Sandboxed Containers Operator がクラスターにインストールされました。
上記のオブジェクトファイル名はすべて提案です。他の名前を使用してオブジェクト YAML ファイルを作成できます。
検証
Operator が正常にインストールされていることを確認します。
oc get csv -n openshift-sandboxed-containers-operator
$ oc get csv -n openshift-sandboxed-containers-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DISPLAY VERSION REPLACES PHASE openshift-sandboxed-containers openshift-sandboxed-containers-operator 1.5.3 1.5.2 Succeeded
NAME DISPLAY VERSION REPLACES PHASE openshift-sandboxed-containers openshift-sandboxed-containers-operator 1.5.3 1.5.2 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.2. CLI を使用した KataConfig カスタムリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
kata を RuntimeClass としてノードにインストールするには、1 つの KataConfig カスタムリソース (CR) を作成する必要があります。KataConfig CR を作成すると、OpenShift Sandboxed Containers Operator がトリガーされ、以下が実行されます。
-
QEMU および
kata-containersなど、必要な RHCOS 拡張を RHCOS ノードにインストールします。 - CRI-O ランタイムが正しいランタイムハンドラーで設定されていることを確認してください。
-
デフォルト設定で
kataという名前のRuntimeClassCR を作成します。これにより、ユーザーは、RuntimeClassNameフィールドで CR を参照することにより、kataをランタイムとして使用するようにワークロードを設定できます。この CR は、ランタイムのリソースオーバーヘッドも指定します。
Kata は、デフォルトですべてのワーカーノードにインストールされます。kata を特定のノードにのみ RuntimeClass としてインストールする場合は、それらのノードにラベルを追加し、KataConfig CR の作成時にそのラベルを定義できます。
前提条件
- クラスターに OpenShift Container Platform 4.15 がインストールされている。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - OpenShift Sandboxed Containers Operator をインストールしている。
KataConfig CR を作成すると、ワーカーノードが自動的に再起動します。再起動には 10 分から 60 分以上かかる場合があります。再起動時間を妨げる要因は次のとおりです。
- より多くのワーカーノードを持つ大規模な OpenShift Container Platform デプロイメント。
- BIOS および診断ユーティリティーが有効である。
- SSD ではなくハードディスクドライブにデプロイしている。
- 仮想ノードではなく、ベアメタルなどの物理ノードにデプロイしている。
- CPU とネットワークが遅い。
手順
次のマニフェストで YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
kataをRuntimeClassとして実行するノードの適格性を検出するには、`checkNodeEligibility` をtrueに設定します。詳細は、「クラスターノードが OpenShift Sandboxed Containers を実行する資格があるかどうかを確認する」を参照してください。
(オプション) 選択したノードにのみ
kataをRuntimeClassとしてインストールする場合は、マニフェストにラベルを含む YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
kataConfigPoolSelectorのラベルは単一値のみをサポートします。nodeSelector構文はサポートされていません。
KataConfigリソースを作成します。oc create -f cluster-kataconfig.yaml
$ oc create -f cluster-kataconfig.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
新しい KataConfig CR が作成され、ワーカーノードに kata を RuntimeClass としてインストールし始めます。kata のインストールが完了し、ワーカーノードが再起動するのを待ってから、次の手順に進みます。
OpenShift Sandboxed Containers は、kata をプライマリーランタイムとしてではなく、クラスター上のセカンダリーオプションのランタイムとしてのみインストールします。
検証
インストールの進捗を監視します。
watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
$ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"Copy to Clipboard Copied! Toggle word wrap Toggle overflow kataNodes の下のすべてのワーカーが
installsとしてリストされ、理由を指定せずにInProgressの条件がFalseの場合は、kataがクラスターにインストールされていることを示します。詳細は、「移行のインストールとアンインストール」を参照してください。
2.3.3. CLI を使用した Sandboxed Containers へのワークロードのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Sandboxed Containers は、Kata をプライマリーランタイムとしてではなく、クラスターでセカンダリーオプションのランタイムとしてインストールします。
Pod テンプレート化されたワークロードを Sandboxed Containers にデプロイするには、ワークロード YAML ファイルに runtimeClassName として kata を追加する必要があります。
前提条件
- クラスターに OpenShift Container Platform 4.15 がインストールされている。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - OpenShift Sandboxed Containers Operator をインストールしている。
-
KataConfigカスタムリソース (CR) を作成している。
手順
任意の Pod テンプレートオブジェクトに
runtimeClassName: kataを追加します。-
Podオブジェクト -
ReplicaSetオブジェクト -
ReplicationControllerオブジェクト -
StatefulSetオブジェクト -
Deploymentオブジェクト -
DeploymentConfigオブジェクト
Pod オブジェクトの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
OpenShift Container Platform はワークロードを作成し、スケジューリングを開始します。
検証
-
Pod テンプレートオブジェクトの
runtimeClassNameフィールドを調べます。runtimeClassNameがkataの場合、ワークロードは OpenShift Sandboxed Containers で実行されています。