3.3. CLI を使用したサンドボックスコンテナー Operator のインストール
CLI から Operator をインストールし、ワークロードを表示できます。
3.3.1. CLI を使用したサンドボックスコンテナー Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform CLI から OpenShift サンドボックスコンテナー Operator をインストールできます。
前提条件
- OpenShift Container Platform 4.8 をお使いのクラスターがインストールされている。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 OpenShift サンドボックスコンテナーカタログにサブスクライブしている。
注記OpenShift サンドボックスコンテナーカタログにサブスクライブすると、
openshift-sandboxed-containers-operatornamespace の OpenShift サンドボックスコンテナー Operator にアクセスできるようになります。
手順
以下のマニフェストを含む YAML ファイルを作成します。
apiVersion: v1 kind: Namespace metadata: name: openshift-sandboxed-containers-operator --- apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-sandboxed-containers-kataconfig-group namespace: openshift-sandboxed-containers-operator spec: targetNamespaces: - openshift-sandboxed-containers-operator --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: sandboxed-containers-operatorhub namespace: openshift-sandboxed-containers-operator spec: source: redhat-operators sourceNamespace: openshift-marketplace name: sandboxed-containers-operator startingCSV: sandboxed-containers-operator.v1.0.0 channel: "preview-1.0" approval: "Automatic"注記preview-1.0 チャネルを使用することで、OpenShift Container Platform バージョンと互換性のある OpenShift Virtualization のバージョンをインストールできます。
OpenShift サンドボックスコンテナーに必要な
Namespace、OperatorGroup、およびSubscriptionオブジェクトを作成します。$ oc create -f <file name>.yamlOperator が正常にインストールされていることを確認します。
$ oc get csv -n openshift-sandboxed-containers-operator出力例
NAME DISPLAY VERSION REPLACES PHASE openshift-sandboxed-containers openshift-sandboxed-containers-operator 1.0.0 <csv-of-previous-version> Succeeded利用可能なデプロイメントを表示します。
$ oc get deployments -n openshift-sandboxed-containers-operator出力例
NAME READY UP-TO-DATE AVAILABLE AGE openshift-sandboxed-containers-operator 1/111 9m48s
検証
KataConfigリソースを作成してインストールをトリガーできるように Operator が稼働していることを確認します。$ oc get deployments -n openshift-sandboxed-containers-operator出力例
NAME READY UP-TO-DATE AVAILABLE AGE openshift-sandboxed-containers-controller-manager 1/1 1 1 40d
3.3.1.1. Kata ランタイムのインストールのトリガー リンクのコピーリンクがクリップボードにコピーされました!
OpenShift サンドボックスコンテナー Operator をトリガーするために KataConfig カスタムリソース (CR) を 1 つ作成する必要があります。
-
QEMU および
kata-containersなど、必要な RHCOS 拡張を RHCOS ノードにインストールします。 - ランタイム CRI-O が正しい Kata ランタイムハンドラーで設定されていることを確認します。
-
仮想化が原因となる追加のオーバーヘッドおよび必須の追加プロセスに必要な設定を使用して
RuntimeClassカスタムリソースを作成します。
前提条件
- OpenShift Container Platform 4.8 をお使いのクラスターがインストールされている。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
手順
KataConfigリソースを作成します。$ oc create -f <file name>.yaml例
apiVersion: kataconfiguration.openshift.io/v1 kind: KataConfig metadata: name: cluster-kataconfigインストールの進捗を監視します。
KataConfigインストールを記述できます。$ oc describe kataconfig- ステータスの Completed nodes フィールドを確認します。
- Completed nodes の値がワーカーノードの数と一致する場合に、インストールは完了します。ステータスには、インストールが完了したノードの一覧も含まれます。
KataConfigリソースを監視して、インストールの進捗を確認できます。$ watch -n 10 oc describe kataconfigまたは、
KataConfigリソースのステータスを確認することもできます。これには、oc get KataConfig <name> -oyamlを実行して、出力のstatusフィールドを検査します。
Kata ランタイムがクラスターにインストールされ、セカンダリーランタイムとして使用できるようになりました。クラスターの Kata 用に新たに作成された RuntimeClass が表示されることを確認します。
OpenShift サンドボックスコンテナーは、Kata を主なランタイムとしてではなく、クラスターでセカンダリーオプションのランタイムとしてのみインストールします。
検証
以下を実行して
KataConfigカスタムリソースの値をモニターできます。$ watch oc describe KataConfig cluster-kataconfig
3.3.1.2. OpenShift サンドボックスコンテナーのノードの選択 リンクのコピーリンクがクリップボードにコピーされました!
特定のワーカーに Kata ランタイムを一部選択してインストールできます。
前提条件
- OpenShift Container Platform 4.8 をお使いのクラスターがインストールされている。
- OpenShift CLI (oc) がインストールされている。
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
手順
ノードの選択に使用するラベルを特定します。この例では、ラベルを使用して、OpenShift サンドボックスコンテナーのワークロードで実行する候補として選択します。ノードが存在する場合は、それらが選択されます。
ラベルをノードに適用するには、以下のコマンドを実行します。
$ oc label node <worker_node_name> <label>=<value>これにより、ワーカーノードに値が
<value>の<label>ラベルを付けます。
ラベルセレクターを追加するには、
KataConfigカスタムリソース (CR) を編集します。$ oc edit kataconfig例
apiVersion: kataconfiguration.openshift.io/v1 kind: KataConfig metadata: name: cluster-kataconfig spec: kataConfigPoolSelector: matchLabels: custom-kata-machine-pool: 'true'
検証
machine-config-poolオブジェクトのノードが設定の更新を行うかどうかを確認できます。デフォルトノードを使用している場合は、以下を実行して
machine-config-poolリソースをモニターできます。$ watch oc get mcp worker選択したノードを使用している場合は、以下を実行して
machine-config-poolリソースをモニターできます。$ watch oc get mcp kata-oc
watch oc describe kataconfig cluster-kataconfigを実行して、ノードでsandboxed-containers拡張の失敗に関する情報を表示できます。この情報は、machine-config-poolオブジェクトのステータスから収集されます。以下を実行して情報を表示できます。$ oc describe mcp <machine-config-pool>
3.3.1.3. OpenShift サンドボックスコンテナーワークロードのスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
ワークロードをスケジューリングすると、OpenShift サンドボックスコンテナーで実行できます。
前提条件
- OpenShift Container Platform 4.8 をお使いのクラスターがインストールされている。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
手順
runtimeClassName: kataを Pod でテンプレート化されたリソースに追加します。-
Podオブジェクト -
ReplicaSetオブジェクト -
ReplicationControllerオブジェクト -
StatefulSetオブジェクト -
Deploymentオブジェクト -
DeploymentConfigオブジェクト
-
Pod オブジェクトの例
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
runtimeClassName: kata
Deployment オブジェクトの例
apiVersion: apps/v1
kind: Deployment
metadata:
name: mypod
labels:
app: mypod
spec:
replicas: 3
selector:
matchLabels:
app: mypod
template:
metadata:
labels:
app: mypod
spec:
runtimeClassName: kata
containers:
- name: mypod
image: myImage
Pod でテンプレート化されたリソースが runtimeClassName: kata によって作成されると、OpenShift Container Platform は OpenShift サンドボックスコンテナーでワークロードのスケジューリングを開始します。セレクターを使用しない場合には、デフォルト値がすべてのワーカーノードに設定されます。ワークロードが OpenShift サンドボックスコンテナーワークロードで実行されます。
3.3.2. CLI からの OpenShift サンドボックスコンテナーワークロードの表示 リンクのコピーリンクがクリップボードにコピーされました!
ワークロードの Pod が CLI から使用する runtimeClass を表示できます。
前提条件
- OpenShift Container Platform 4.8 をお使いのクラスターがインストールされている。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
手順
Pod の
runtimeClassNameフィールドを検査して、OpenShift サンドボックスコンテナーで実行している Pod と通常のコンテナーを比較します。-
ノードでは、Pod ごとに対応する
qemuプロセスがあります。
-
ノードでは、Pod ごとに対応する
検証
openshift-sandboxed-containers-operatorコントローラー Pod のログをチェックして、実行されているステップに関する詳細なメッセージを確認できます。コントローラー Pod 名を取得するには、以下を実行します。
$ oc get pods -n openshift-sandboxed-containers-operator | grep openshift-sandboxed-containers-operator-controller-managerこれにより、Pod のコンテナーマネージャーのログを監視できます。