2.12. Run Once Duration Override Operator
2.12.1. Run once Duration Override Operator の概要
Run Once Duration Override Operator を使用して、1 回実行 Pod をアクティブにできる最大時間制限を指定できます。
2.12.1.1. Run Once Duration Override Operator について
OpenShift Container Platform は 1 回実行 (run-once) Pod を使用して Pod のデプロイやビルドの実行などのタスクを実行します。1 回実行 (run-once) Pod は、RestartPolicy
が Never
または OnFailure
の Pod です。
クラスター管理者は Run Once Duration Override Operator を使用して、1 回実行 Pod がアクティブになる時間を強制的に制限できます。期限が切れると、クラスターはそれらの Pod をアクティブに終了しようとします。このような制限を設ける主な理由は、ビルドなどのタスクが長い時間にわたって実行されることを防ぐことにあります。
Run Once Duration Override Operator から run-once duration override を 1 回実行 (run-once) Pod に適用するには、該当する各 namespace でそれを有効にする必要があります。
1 回実行 Pod と Run Once Duration Override Operator の両方に activeDeadlineSeconds
値が設定されている場合、2 つの値のうち小さい方が使用されます。
2.12.2. Run Once Duration Override Operator のリリースノート
クラスター管理者は Run Once Duration Override Operator を使用して、1 回実行 Pod がアクティブになる時間を強制的に制限できます。制限時間が経過すると、クラスターは 1 回実行 Pod を終了しようとします。このような制限を設ける主な理由は、ビルドなどのタスクが長い時間にわたって実行されることを防ぐことにあります。
Run Once Duration Override Operator から run-once duration override を 1 回実行 (run-once) Pod に適用するには、該当する各 namespace でそれを有効にする必要があります。
これらのリリースノートでは、OpenShift Container Platform の Run Once Duration Override Operator の開発を追跡します。
Run Once Duration Override Operator の概要は、Run Once Duration Override Operator について を参照してください。
2.12.2.1. Run Once Duration Override Operator 1.2.0
発行日: 2024 年 11 月 20 日
Run Once Duration Override Operator 1.1.0 については、以下のアドバイザリーが利用できます。
2.12.2.1.1. バグ修正
- Run Once Duration Override Operator のこのリリースでは、いくつかの Common Vulnerabilities and Exposures (CVE) に対処しています。
2.12.2.2. Run Once Duration Override Operator 1.0.1
発行日: 2023 年 10 月 31 日
次のアドバイザリーは、Run Once Duration Override Operator 1.0.1 に対して利用可能です。
2.12.2.2.1. バグ修正
- Run Once Duration Override Operator のこのリリースでは、いくつかの Common Vulnerabilities and Exposures (CVE) に対処しています。
2.12.2.3. Run Once Duration Override Operator 1.0.0
発行日: 2024 年 5 月 16 日
次のアドバイザリーは、Run Once Duration Override Operator 1.0.0 に対して利用可能です。
2.12.2.3.1. 新機能および機能拡張
- これは、Run Once Duration Override Operator の最初の一般公開リリースです。インストールの詳細は、Run Once Duration Override Operator のインストール を参照してください。
2.12.3. 1 回実行 Pod のアクティブな期限をオーバーライドする
Run Once Duration Override Operator を使用して、1 回実行 Pod をアクティブにできる最大時間制限を指定できます。namespace で Run Once Duration Override Operator を有効にすると、その namespace で今後作成または更新されるすべての 1 回実行 (run-once) Pod の activeDeadlineSeconds
フィールドが、Run Once Duration Override Operator で指定された値に設定されます。
1 回実行 Pod と Run Once Duration Override Operator の両方に activeDeadlineSeconds
値が設定されている場合、2 つの値のうち小さい方が使用されます。
2.12.3.1. Run Once Duration Override Operator のインストール
Web コンソールを使用して、Run Once Period Override Operator をインストールできます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
手順
- OpenShift Container Platform Web コンソールにログインします。
Run Once Duration Override Operator に必要な namespace を作成します。
-
Administration
Namespaces に移動し、Create Namespace をクリックします。 -
Name フィールドに
openshift-run-once-duration-override-operator
と入力し、Create をクリックします。
-
Administration
Run Once Duration Override Operator をインストールします。
-
Operators
OperatorHub に移動します。 - フィルターボックスに Run Once Duration Override Operator と入力します。
- Run Once Duration Override Operator を選択し、Install をクリックします。
Install Operator ページで以下を行います。
- Update channel は stable に設定されており、これにより、Run Once Duration Override Operator の最新の安定リリースがインストールされます。
- A specific namespace on the cluster を選択します。
- openshift-run-once-duration-override-operator の下のドロップダウンメニューから openshift-run-once-duration-override-operator を選択します。
Update approval strategy を選択します。
- Automatic ストラテジーにより、Operator Lifecycle Manager (OLM) は新規バージョンが利用可能になると Operator を自動的に更新できます。
- Manual ストラテジーには、Operator の更新を承認するための適切な認証情報を持つユーザーが必要です。
- Install をクリックします。
-
Operators
RunOnceDurationOverride
インスタンスを作成します。-
Operators
Installed Operators ページから、Run Once Duration Override Operator をクリックします。 - Run Once Duration Override タブを選択し、Create RunOnceDurationOverride をクリックします。
必要に応じて設定を編集します。
runOnceDurationOverride
セクションで、必要に応じてspec.activeDeadlineSeconds
値を更新できます。事前定義された値は3600
秒、つまり 1 時間です。- Create をクリックします。
-
Operators
検証
- OpenShift CLI にログインします。
すべての Pod が作成され、適切に実行されていることを確認します。
$ oc get pods -n openshift-run-once-duration-override-operator
出力例
NAME READY STATUS RESTARTS AGE run-once-duration-override-operator-7b88c676f6-lcxgc 1/1 Running 0 7m46s runoncedurationoverride-62blp 1/1 Running 0 41s runoncedurationoverride-h8h8b 1/1 Running 0 41s runoncedurationoverride-tdsqk 1/1 Running 0 41s
2.12.3.2. namespace での run-once duration override の有効化
Run Once Duration Override Operator から run-once duration override を 1 回実行 (run-once) Pod に適用するには、該当する各 namespace でそれを有効にする必要があります。
前提条件
- Run Once Duration Override Operator がインストールされます。
手順
- OpenShift CLI にログインします。
ラベルを追加して、run-once duration override を有効にします。
$ oc label namespace <namespace> \ 1 runoncedurationoverrides.admission.runoncedurationoverride.openshift.io/enabled=true
- 1
- run-once duration override を有効にする namespace を指定します。
この namespace で run-once duration override を有効にすると、今後この namespace で作成される 1 回実行 Pod の activeDeadlineSeconds
フィールドが、Run Once Duration Override Operator からのオーバーライド値に設定されます。この namespace の既存 Pod には、次の更新時に activeDeadlineSeconds
値も設定されます。
検証
run-once duration override を有効にした namespace に、1 回実行 Pod を作成します。
apiVersion: v1 kind: Pod metadata: name: example namespace: <namespace> 1 spec: restartPolicy: Never 2 containers: - name: busybox securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] runAsNonRoot: true seccompProfile: type: "RuntimeDefault" image: busybox:1.25 command: - /bin/sh - -ec - | while sleep 5; do date; done
Pod に
activeDeadlineSeconds
フィールドが設定されていることを確認します。$ oc get pods -n <namespace> -o yaml | grep activeDeadlineSeconds
出力例
activeDeadlineSeconds: 3600
2.12.3.3. run-once active deadline override 値の更新
Run Once Duration Override Operator が 1 回実行 Pod (run-once Pod) に適用されるオーバーライド値をカスタマイズできます。事前定義された値は 3600
秒、つまり 1 時間です。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - Run Once Duration Override Operator をインストールしました。
手順
- OpenShift CLI にログインします。
RunOnceDurationOverride
リソースを編集します。$ oc edit runoncedurationoverride cluster
activeDeadlineSeconds
フィールドを更新します。apiVersion: operator.openshift.io/v1 kind: RunOnceDurationOverride metadata: # ... spec: runOnceDurationOverride: spec: activeDeadlineSeconds: 1800 1 # ...
- 1
activeDeadlineSeconds
フィールドを必要な値に設定します (秒単位)。
- 変更を適用するためにファイルを保存します。
run-once duration override が有効になっている namespace で今後作成される 1 回実行 Pod では、activeDeadlineSeconds
フィールドがこの新しい値に設定されます。これらの namespace 内の既存の 1 回実行 Pod は、更新時にこの新しい値を受け取ります。
2.12.4. Run Once Duration Override Operator のアンインストール
Operator をアンインストールし、その関連リソースを削除することで、OpenShift Container Platform から Run Once Duration Override Operator を削除できます。
2.12.4.1. Run Once Duration Override Operator のアンインストール
Web コンソールを使用して、Run Once Period Override Operator をアンインストールできます。Run Once Duration Override Operator をアンインストールしても、1 回実行 (run-once) Pod の activeDeadlineSeconds
フィールドの設定が解除されませんが、上書き値は今後の 1 回実行 (run-once) Pod に適用されなくなります。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- Run Once Duration Override Operator をインストールしました。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
Installed Operators に移動します。 -
Project ドロップダウンリストから
openshift-run-once-duration-override-operator
を選択します。 RunOnceDurationOverride
インスタンスを削除します。- Run Once Duration Override Operator をクリックし、Run Once Duration Override タブを選択します。
- クラスター エントリーの横にある Options メニュー をクリックし、Delete RunOnceDurationOverride を選択します。
- 確認ダイアログで Delete をクリックします。
Run Once Duration Override Operator Operator をアンインストールします。
-
Operators
Installed Operators に移動します。 - Run Once Duration Override Operator エントリーの横にある Options メニュー をクリックし、Uninstall Operator をクリックします。
- 確認ダイアログで、Uninstall をクリックします。
-
Operators
2.12.4.2. Run Once Duration Override Operator リソースのアンインストール
必要に応じて、Run Once Duration Override Operator をアンインストールした後、その関連リソースをクラスターから削除できます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- Run Once Duration Override Operator をアンインストールしている。
手順
- OpenShift Container Platform Web コンソールにログインします。
Run Once Duration Override Operator のインストール時に作成された CRD を削除します。
-
Administration
CustomResourceDefinitions に移動します。 -
Name フィールドに
RunOnceDurationOverride
を入力し、CRD をフィルタリングします。 - RunOnceDurationOverride CRD の横にある Options メニュー をクリックし、Delete CustomResourceDefinition を選択します。
- 確認ダイアログで Delete をクリックします。
-
Administration
openshift-run-once-duration-override-operator
namespace を削除します。-
Administration
Namespaces に移動します。 -
openshift-run-once-duration-override-operator
をフィルターボックスに入力します。 - openshift-run-once-duration-override-operator エントリーの横にある Options メニュー をクリックし、Delete Namespace を選択します。
-
確認ダイアログで、
openshift-run-once-duration-override-operator
を入力し、Delete をクリックします。
-
Administration
有効にされた namespace から run-once duration override ラベルを削除します。
-
Administration
Namespaces に移動します。 - namespace を選択します。
- Labels フィールドの横にある Edit をクリックします。
- runoncedurationoverrides.admission.runoncedurationoverride.openshift.io/enabled=true ラベルを削除し、Save をクリックします。
-
Administration