4.10. セカンダリースケジューラー
4.10.1. セカンダリースケジューラーの概要
Secondary Scheduler Operator をインストールして、デフォルトのスケジューラーと共にカスタムのセカンダリースケジューラーを実行して Pod をスケジュールすることができます。
4.10.1.1. セカンダリースケジューラー Operator について
Red Hat OpenShift のセカンダリースケジューラー Operator は、OpenShift Container Platform でカスタムセカンダリースケジューラーをデプロイする方法を提供します。セカンダリースケジューラーは、デフォルトのスケジューラーと共に実行され、Pod をスケジュールします。Pod 設定は、使用するスケジューラーを指定できます。
カスタムスケジューラーには /bin/kube-scheduler
バイナリーが必要であり、Kubernetes スケジューリングフレームワーク をベースとする必要があります。
Secondary Scheduler Operator を使用してカスタムセカンダリースケジューラーを OpenShift Container Platform にデプロイできますが、Red Hat はカスタムセカンダリースケジューラーの機能を直接サポートしません。
セカンダリースケジューラー Operator は、セカンダリースケジューラーで必要なデフォルトのロールおよびロールバインディングを作成します。セカンダリースケジューラーの KubeSchedulerConfiguration
リソースを設定することにより、有効または無効にするスケジューリングプラグインを指定できます。
4.10.2. Red Hat OpenShift リリースノートのセカンダリースケジューラー Operator
Red Hat OpenShift のセカンダリースケジューラー Operator を使用すると、カスタムセカンダリースケジューラーを OpenShift Container Platform クラスターにデプロイできます。
本リリースノートでは、Red Hat OpenShift のセカンダリースケジューラー Operator の開発を追跡します。
詳細は、セカンダリースケジューラー Operator について を参照してください。
4.10.2.1. Red Hat OpenShift 1.1.0 のセカンダリースケジューラー Operator のリリースノート
発行日: 2022-9-1
以下のアドバイザリーは、Red Hat OpenShift 1.1.0 のセカンダリースケジューラー Operator で利用できます。
4.10.2.1.1. 新機能および機能拡張
- セカンダリースケジューラー Operator のセキュリティーコンテキスト設定は、Pod セキュリティーアドミッションの実施 に準拠するように更新されました。
4.10.2.1.2. 既知の問題
- 現時点で、Secondary Scheduler Operator を使用して設定マップ、CRD、RBAC ポリシーなどの追加のリソースをデプロイできません。カスタムセカンダリースケジューラーに必要なロールとロールバインディング以外のリソースは、外部から適用する必要があります。(BZ#2071684)
4.10.2.2. Red Hat OpenShift 1.0.1 のセカンダリースケジューラー Operator のリリースノート
発行日: 2022-07-28
以下のアドバイザリーは、Red Hat OpenShift 1.0.1 の セカンダリースケジューラー Operator で利用できます。
4.10.2.2.1. 新機能および機能拡張
- Red Hat OpenShift 1.0.1 の セカンダリースケジューラー Operator の OpenShift Container Platform の最大バージョンは 4.11 です。
4.10.2.2.2. バグ修正
- 以前は、セカンダリースケジューラーのカスタムリソース (CR) が削除された後、セカンダリースケジューラーのデプロイメントが削除されなかったため、セカンダリースケジューラー Operator とオペランドを完全にアンインストールできませんでした。セカンダリースケジューラーの CR が削除されると、セカンダリースケジューラーのデプロイメントが削除されるようになったため、セカンダリースケジューラー Operator を完全にアンインストールできるようになりました。(BZ#2100923)
4.10.2.2.3. 既知の問題
- 現時点で、Secondary Scheduler Operator を使用して設定マップ、CRD、RBAC ポリシーなどの追加のリソースをデプロイできません。カスタムセカンダリースケジューラーに必要なロールとロールバインディング以外のリソースは、外部から適用する必要があります。(BZ#2071684)
4.10.2.3. Red Hat OpenShift 1.0.0 のセカンダリースケジューラー Operator のリリースノート
発行日: 2022-04-18
以下のアドバイザリーは、Red Hat OpenShift 1.0.0 の Secondary Scheduler Operator で利用できます。
4.10.2.3.1. 新機能および機能拡張
- これは、Red Hat OpenShift のセカンダリースケジューラー Operator の初期リリースです。
4.10.2.3.2. 既知の問題
- 現時点で、Secondary Scheduler Operator を使用して設定マップ、CRD、RBAC ポリシーなどの追加のリソースをデプロイできません。カスタムセカンダリースケジューラーに必要なロールとロールバインディング以外のリソースは、外部から適用する必要があります。(BZ#2071684)
4.10.3. セカンダリースケジューラーを使用した Pod のスケジューリング
OpenShift Container Platform でカスタムセカンダリースケジューラーを実行するには、セカンダリースケジューラー Operator をインストールし、セカンダリースケジューラーをデプロイし、セカンダリースケジューラーを Pod 定義に設定します。
4.10.3.1. セカンダリースケジューラー Operator のインストール
Web コンソールを使用して、Red Hat OpenShift の Secondary Scheduler Operator をインストールできます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
手順
- OpenShift Container Platform Web コンソールにログインします。
Red Hat OpenShift のセカンダリースケジューラー Operator に必要な namespace を作成します。
-
Administration
Namespaces に移動し、Create Namespace をクリックします。 -
Name フィールドに
openshift-secondary-scheduler-operator
を入力し、Create をクリックします。
-
Administration
Red Hat OpenShift 用のセカンダリースケジューラー Operator をインストールします。
-
Operators
OperatorHub に移動します。 - フィルターボックスに Red Hat の SecondarySchedulerOperator と入力します。
- Red Hat OpenShift 用の Secondary Scheduler Operator を選択し、Install をクリックします。
Install Operator ページで以下を行います。
- Update チャネル は stable に設定され、Red Hat OpenShift 用の Secondary Scheduler Operator の最新の安定したリリースをインストールします。
- クラスターで特定の namespace を 選択し、ドロップダウンメニューから openshift-secondary-scheduler-operator を選択します。
Update approval strategy を選択します。
- Automatic ストラテジーにより、Operator Lifecycle Manager (OLM) は新規バージョンが利用可能になると Operator を自動的に更新できます。
- Manual ストラテジーには、Operator の更新を承認するための適切な認証情報を持つユーザーが必要です。
- Install をクリックします。
-
Operators
検証
-
Operators
Installed Operators に移動します。 - Red Hat OpenShift の Secondary Scheduler Operator が Status が Succeeded の状態でリスト表示されていることを確認します。
4.10.3.2. セカンダリースケジューラーのデプロイ
Secondary Scheduler Operator のインストール後に、セカンダリースケジューラーをデプロイできます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- Red Hat OpenShift のセカンダリースケジューラー Operator がインストールされている。
手順
- OpenShift Container Platform Web コンソールにログインします。
セカンダリースケジューラーの設定を保持する設定マップを作成します。
-
Workloads
ConfigMaps に移動します。 - Create ConfigMap をクリックします。
YAML エディターで、必要な
KubeSchedulerConfiguration
設定が含まれる設定マップ定義を入力します。以下に例を示します。apiVersion: v1 kind: ConfigMap metadata: name: "secondary-scheduler-config" 1 namespace: "openshift-secondary-scheduler-operator" 2 data: "config.yaml": | apiVersion: kubescheduler.config.k8s.io/v1beta3 kind: KubeSchedulerConfiguration 3 leaderElection: leaderElect: false profiles: - schedulerName: secondary-scheduler 4 plugins: 5 score: disabled: - name: NodeResourcesBalancedAllocation - name: NodeResourcesLeastAllocated
- 1
- 設定マップの名前。これは、
SecondaryScheduler
CR の作成時に Scheduler Config フィールドで使用されます。 - 2
- 設定マップは
openshift-secondary-scheduler-operator
namespace に作成される必要があります。 - 3
- セカンダリースケジューラーの
KubeSchedulerConfiguration
リソース。詳細は、Kubernetes API ドキュメントのKubeSchedulerConfiguration
を参照してください。 - 4
- セカンダリースケジューラーの名前。
spec.schedulerName
フィールドをこの値に設定する Pod はこのセカンダリースケジューラーでスケジュールされます。 - 5
- セカンダリースケジューラーに対して有効または無効にするプラグイン。デフォルトのスケジューリングプラグインのリストについては、Kubernetes ドキュメントの スケジューリングプラグ インを参照してください。
- Create をクリックします。
-
Workloads
SecondaryScheduler
CR を作成します。-
Operators
Installed Operators に移動します。 - Red Hat OpenShift の Secondary Scheduler Operator を選択します。
- Secondary Scheduler タブを選択し、Create SecondaryScheduler をクリックします。
-
Name フィールドはデフォルトで
cluster
に設定されます。この名前は変更しないでください。 -
Scheduler Config フィールドは
secondary-scheduler-config
にデフォルト設定されます。この値は、この手順で先に作成した設定マップの名前と一致していることを確認してください。 Scheduler Image フィールドにカスタムスケジューラーのイメージ名を入力します。
重要Red Hat では、カスタムのセカンダリースケジューラーの機能を直接サポートしません。
- Create をクリックします。
-
Operators
4.10.3.3. セカンダリースケジューラーを使用した Pod のスケジューリング
セカンダリースケジューラーを使用して Pod をスケジュールするには、Pod 定義の schedulerName
フィールドを設定します。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- Red Hat OpenShift のセカンダリースケジューラー Operator がインストールされている。
- セカンダリースケジューラーが設定されています。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Workloads
Pods に移動します。 - Create Pod をクリックします。
YAML エディターで、必要な Pod 設定を入力し、
schedulerName
フィールドを追加します。apiVersion: v1 kind: Pod metadata: name: nginx namespace: default spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 schedulerName: secondary-scheduler 1
- 1
schedulerName
フィールドは、セカンダリースケジューラーの設定時に設定マップで定義される名前と一致する必要があります。
- Create をクリックします。
検証
- OpenShift CLI にログインします。
以下のコマンドを使用して Pod を記述します。
$ oc describe pod nginx -n default
出力例
Name: nginx Namespace: default Priority: 0 Node: ci-ln-t0w4r1k-72292-xkqs4-worker-b-xqkxp/10.0.128.3 ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 12s secondary-scheduler Successfully assigned default/nginx to ci-ln-t0w4r1k-72292-xkqs4-worker-b-xqkxp ...
-
イベントテーブルで、
Successfully assigned <namespace>/<pod_name> to <node_name>
のようなメッセージが表示されたイベントを見つけます。 From 列で、デフォルトのスケジューラーではなく、イベントがセカンダリースケジューラーから生成されたことを確認します。
注記openshift-secondary-scheduler-namespace
のsecondary-scheduler-*
Pod ログをチェックして、Pod がセカンダリースケジューラーによってスケジュールされていることを確認することもできます。
4.10.4. セカンダリースケジューラー Operator のアンインストール
Operator をアンインストールして関連リソースを削除することにより、Red Hat OpenShift のセカンダリースケジューラー Operator を OpenShift Container Platform から削除できます。
4.10.4.1. セカンダリースケジューラー Operator のアンインストール
Web コンソールを使用して、Red Hat OpenShift のセカンダリースケジューラー Operator をアンインストールできます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- Red Hat OpenShift のセカンダリースケジューラー Operator がインストールされている。
手順
- OpenShift Container Platform Web コンソールにログインします。
Red Hat OpenShift Operator のセカンダリースケジューラー Operator をアンインストールします。
-
Operators
Installed Operators に移動します。 - セカンダリースケジューラーの Operator エントリーの隣にあるオプションメニュー をクリックし、Operator のアンインストール をクリックします。
- 確認ダイアログで、Uninstall をクリックします。
-
Operators
4.10.4.2. Secondary Scheduler Operator リソースの削除
オプションで、Red Hat の Secondary Scheduler Operator をアンインストールした後、関連するリソースをクラスターから削除できます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
手順
- OpenShift Container Platform Web コンソールにログインします。
Secondary Scheduler Operator によってインストールされた CRD を削除します。
-
Administration
CustomResourceDefinitions に移動します。 -
Name フィールドに
SecondaryScheduler
を入力して CRD をフィルターします。 - SecondaryScheduler CRD の横にある Options メニュー をクリックし、Delete Custom Resource Definition を選択します。
-
Administration
openshift-secondary-scheduler-operator
namespace を削除します。-
Administration
Namespaces に移動します。 - openshift-secondary-scheduler-operator の横にあるオプションメニュー をクリックし、namespace の削除 を選択します。
-
確認ダイアログで、フィールドに
openshift-secondary-scheduler-operator
を入力し、Delete をクリックします。
-
Administration