3.2. マシン設定の変更時にノードを再起動する動作を設定する
ノード停止ポリシーを作成すると、クラスターの停止を引き起こすマシン設定の変更と、引き起こさない変更を定義できます。
/var
または /etc
ディレクトリー内のファイル、systemd ユニット、SSH キー、および registries.conf
ファイルの変更に対してノードがどのように反応するかを制御できます。
これらの変更のいずれかを行うと、ノード停止ポリシーによって、MCO が変更を実装するときに必要なアクションが次の中から決定されます。
- Reboot: MCO はノードをドレインして再起動します。これがデフォルトの動作です。
- None: MCO はノードのドレインも再起動も実行しません。MCO は、それ以上のアクションなしで変更を適用します。
- Drain: MCO はノードのワークロードを遮断してドレインします。ワークロードは新しい設定で再起動します。
- Reload: サービスの場合、MCO はサービスを再起動せずに指定されたサービスをリロードします。
- Restart: サービスの場合、MCO は指定されたサービスを完全に再起動します。
- DaemonReload: MCO は systemd マネージャー設定をリロードします。
- Special: これは MCO 専用の内部アクションであり、ユーザーが設定することはできません。
-
Reboot
およびNone
アクションを他のアクションと一緒に使用することはできません。Reboot
およびNone
アクションは、他のアクションをオーバーライドするためです。 - アクションは、ノード停止ポリシーのリストに設定されている順序で適用されます。
- ノードの再起動やその他の停止が必要となるその他のマシン設定の変更を行った場合、その再起動はノード停止ポリシーのアクションよりも優先されます。
前提条件
フィーチャーゲートを使用して
TechPreviewNoUpgrade
機能セットを有効にしている。詳細は、「フィーチャーゲートを使用した機能の有効化」を参照してください。警告クラスターで
TechPreviewNoUpgrade
機能セットを有効にすると、マイナーバージョンの更新ができなくなります。TechPreviewNoUpgrade
機能セットは無効にできません。実稼働クラスターではこの機能セットを有効にしないでください。
手順
machineconfigurations.operator.openshift.io
オブジェクトを編集して、ノード停止ポリシーを定義します。$ oc edit MachineConfiguration cluster -n openshift-machine-config-operator
次のようなノード停止ポリシーを追加します。
apiVersion: operator.openshift.io/v1 kind: MachineConfiguration metadata: name: cluster # ... spec: nodeDisruptionPolicy: 1 files: 2 - actions: 3 - reload: 4 serviceName: chronyd.service 5 type: Reload path: /etc/chrony.conf 6 sshkey: 7 actions: - type: Drain - reload: serviceName: crio.service type: Reload - type: DaemonReload - restart: serviceName: crio.service type: Restart units: 8 - actions: - type: Drain - reload: serviceName: crio.service type: Reload - type: DaemonReload - restart: serviceName: crio.service type: Restart name: test.service
- 1
- ノード停止ポリシーを指定します。
- 2
- マシン設定ファイルの定義と、それらのパスの変更に対して実行するアクションのリストを指定します。このリストは最大 50 個のエントリーをサポートします。
- 3
- 指定したファイルが変更されたときに実行する一連のアクションを指定します。アクションは、このリストに設定されている順序で適用されます。このリストは最大 10 個のエントリーをサポートします。
- 4
- 指定したファイルが変更されたときに、リストしたサービスをリロードすることを指定します。
- 5
- アクションの対象となるサービスの完全な名前を指定します。
- 6
- マシン設定によって管理されるファイルの場所を指定します。ポリシー内のアクションは、
path
内のファイルが変更されたときに適用されます。 - 7
- クラスター内の SSH キーが変更されたときに実行するサービス名とアクションのリストを指定します。
- 8
- systemd ユニット名のリストと、これらのユニットが変更されたときに実行するアクションを指定します。
検証
作成した
MachineConfiguration
オブジェクトファイルを表示します。$ oc get MachineConfiguration/cluster -o yaml
出力例
apiVersion: operator.openshift.io/v1 kind: MachineConfiguration metadata: labels: machineconfiguration.openshift.io/role: worker name: cluster # ... status: nodeDisruptionPolicyStatus: 1 clusterPolicies: files: # ... - actions: - reload: serviceName: chronyd.service type: Reload path: /etc/chrony.conf sshkey: actions: - type: Drain - reload: serviceName: crio.service type: Reload - type: DaemonReload - restart: serviceName: crio.service type: Restart units: - actions: - type: Drain - reload: serviceName: crio.service type: Reload - type: DaemonReload - restart: serviceName: crio.service type: Restart name: test.se # ...
- 1
- 現在のクラスター検証済みのポリシーを示します。