第3章 ノード停止ポリシーを使用してマシン設定の変更による停止を最小限に抑える


デフォルトでは、MachineConfig オブジェクトのフィールドに何らかの変更を加えると、Machine Config Operator (MCO) がそのマシン設定に関連付けられているノードをドレインして再起動します。ただし、ノード停止ポリシー を作成すると、一部の Ignition 設定オブジェクトに対して、ワークロードの停止をほとんどまたはまったく引き起こさない一連の変更を定義できます。

ノード停止ポリシーを使用すると、クラスターに停止を引き起こす設定変更と、引き起こさない設定変更を定義できます。これにより、クラスター内で小さなマシン設定の変更を行うときに、ノードのダウンタイムを短縮できます。ポリシーを設定するには、openshift-machine-config-Operator namespace にある MachineConfiguration オブジェクトを変更します。後述する MachineConfiguration オブジェクトのノード停止ポリシーの例を参照してください。

注記

ノード停止ポリシーに関係なく、常に再起動が必要となるマシン設定の変更があります。詳細は、Machine Config Operator について を参照してください。

ノード停止ポリシーを作成すると、MCO がポリシーを検証し、フォーマットの問題など、ファイル内の潜在的な問題を検索します。次に、MCO はポリシーをクラスターのデフォルト設定とマージし、マシン設定の status.nodeDisruptionPolicyStatus フィールドに、マシン設定が将来変更されたときに実行されるアクションを入力します。クラスターのデフォルト設定は、常にポリシー内の設定で上書きされます。

重要

MCO は、ノード停止ポリシーによって変更が正常に適用できるかどうかを検証しません。したがって、ノード停止ポリシーの正確性を確認する責任はお客様にあります。

たとえば、sudo 設定によるノードのドレインと再起動が必要ないように、ノード停止ポリシーを設定できます。また、sshd への更新を適用する際に sshd サービスだけをリロードするようにクラスターを設定することもできます。

重要

ノード停止ポリシー機能は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

次の Ignition 設定オブジェクトに変更を加えるときに、MCO の動作を制御できます。

  • 設定ファイル: /var または /etc ディレクトリー内のファイルを追加または更新します。
  • systemd ユニット: systemd サービスを作成してステータスを設定するか、既存の systemd サービスを変更します。
  • ユーザーとグループ: インストール後に passwd セクションで SSH キーを変更します。
  • ICSPITMSIDMS オブジェクト: ImageContentSourcePolicy (ICSP)、ImageTagMirrorSet (ITMS)、および ImageDigestMirrorSet (IDMS) オブジェクトからミラーリングルールを削除できます。

これらの変更のいずれかを行うと、ノード停止ポリシーによって、MCO が変更を実装するときに必要なアクションが次の中から決定されます。

  • Reboot: MCO はノードをドレインして再起動します。これがデフォルトの動作です。
  • None: MCO はノードのドレインも再起動も実行しません。MCO は、それ以上のアクションなしで変更を適用します。
  • Drain: MCO はノードのワークロードを遮断してドレインします。ワークロードは新しい設定で再起動します。
  • Reload: サービスの場合、MCO はサービスを再起動せずに指定されたサービスをリロードします。
  • Restart: サービスの場合、MCO は指定されたサービスを完全に再起動します。
  • DaemonReload: MCO は systemd マネージャー設定をリロードします。
  • Special: これは MCO 専用の内部アクションであり、ユーザーが設定することはできません。
注記
  • Reboot および None アクションを他のアクションと一緒に使用することはできません。Reboot および None アクションは、他のアクションをオーバーライドするためです。
  • アクションは、ノード停止ポリシーのリストに設定されている順序で適用されます。
  • ノードの再起動やその他の停止が必要となるその他のマシン設定の変更を行った場合、その再起動はノード停止ポリシーのアクションよりも優先されます。

3.1. ノード停止ポリシーの例

次の例の MachineConfiguration オブジェクトには、ノード停止ポリシーが含まれています。

ヒント

MachineConfiguration オブジェクトと MachineConfig オブジェクトは別々のオブジェクトです。MachineConfiguration オブジェクトは、MCO Operator の設定パラメーターを含む MCO namespace 内のシングルトンオブジェクトです。MachineConfig オブジェクトは、マシン設定プールに適用される変更を定義します。

次の例の MachineConfiguration オブジェクトでは、ユーザー定義のポリシーは示していません。デフォルトのノード停止ポリシーの値を status スタンザに示します。

デフォルトのノード停止ポリシー

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
  name: cluster
spec:
  logLevel: Normal
  managementState: Managed
  operatorLogLevel: Normal
status:
  nodeDisruptionPolicyStatus:
    clusterPolicies:
      files:
      - actions:
        - type: None
        path: /etc/mco/internal-registry-pull-secret.json
      - actions:
        - type: None
        path: /var/lib/kubelet/config.json
      - actions:
        - reload:
            serviceName: crio.service
          type: Reload
        path: /etc/machine-config-daemon/no-reboot/containers-gpg.pub
      - actions:
        - reload:
            serviceName: crio.service
          type: Reload
        path: /etc/containers/policy.json
      - actions:
        - type: Special
        path: /etc/containers/registries.conf
      sshkey:
        actions:
        - type: None
  readyReplicas: 0

次の例では、SSH キーが変更されたときに、MCO はクラスターノードのドレイン、crio.service のリロード、systemd 設定のリロード、crio-service の再起動を実行します。

SSH キーの変更に対するノード停止ポリシーの例

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
# ...
spec:
  nodeDisruptionPolicy:
    sshkey:
      actions:
      - type: Drain
      - reload:
          serviceName: crio.service
        type: Reload
      - type: DaemonReload
      - restart:
          serviceName: crio.service
        type: Restart
# ...

次の例では、/etc/chrony.conf ファイルに変更が加えられると、MCO はクラスターノード上の chronyd.service を再ロードします。

設定ファイルの変更に対するノード停止ポリシーの例

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
# ...
spec:
  nodeDisruptionPolicy:
    files:
    - actions:
      - reload:
          serviceName: chronyd.service
        type: Reload
      path: /etc/chrony.conf

次の例では、auditd.service systemd ユニットが変更されたときに、MCO はクラスターノードのドレイン、crio.service のリロード、systemd マネージャー設定のリロード、crio.service の再起動を実行します。

systemd ユニット変更のためのノード中断ポリシーの例

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
# ...
spec:
  nodeDisruptionPolicy:
    units:
      - name: auditd.service
        actions:
          - type: Drain
          - type: Reload
            reload:
              serviceName: crio.service
          - type: DaemonReload
          - type: Restart
            restart:
              serviceName: crio.service

次の例では、ImageContentSourcePolicy (ICSP) オブジェクトの編集などにより registries.conf ファイルに変更が加えられた場合、MCO はノードをドレインまたは再起動せず、それ以上のアクションなしで変更を適用します。

registries.conf ファイルの変更に対するノード中断ポリシーの例

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
# ...
spec:
  nodeDisruptionPolicy:
    files:
      - actions:
        - type: None
        path: /etc/containers/registries.conf

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.