4.3. check スクリプトおよび notify スクリプトの設定


OpenShift Container Platform で IP フェイルオーバーのヘルスモニタリングをカスタマイズし、仮想 IP の状態が変更されたときに通知を受け取るには、ConfigMap オブジェクトを使用してチェックおよび通知スクリプトを設定できます。

チェックおよび通知スクリプトは、IP フェイルオーバー Pod 内で実行され、ホストファイルシステムではなく Pod のファイルシステムを使用します。ホストファイルシステムは、/hosts マウントパスの下から Pod にアクセスできます。check または notify スクリプトを設定する場合は、スクリプトへの完全パスを指定する必要があります。

各 IP フェイルオーバー Pod は、Pod が実行されているノード上の 1 つ以上の仮想 IP(仮想 IP) アドレスを制御する Keepalived デーモンを管理します。Keepalived は、ノード上の各仮想 IP の状態を追跡します。VIP は、マスターバックアップ、または 障害の いずれかになります。

チェックおよび通知スクリプトの完全なパス名は、Keepalived の設定ファイル /etc/keepalived/keepalived.conf に追加され、Keepalived が起動するたびに読み込まれます。以下のセクションで説明するように、ConfigMap オブジェクトを使用してスクリプトを Pod に追加します。

Check script

Keepalived は、ユーザーが指定したオプションのチェックスクリプトを定期的に実行することで、アプリケーションの状態を監視します。たとえば、このスクリプトは要求を発行し、応答を検証することで web サーバーをテストします。チェックスクリプトを指定しない場合、Keepalived は TCP 接続をテストするデフォルトのスクリプトを実行します。モニターポートが 0 に設定されている場合、このデフォルトテストは抑制されます。

チェックスクリプトがゼロ以外の値を返した場合、ノードは バックアップ 状態に入り、ノードが保持しているすべての仮想 IP が再割り当てされます。

Notify script

クラスター管理者として、仮想 IP の状態が変更されるたびに Keepalived が呼び出す通知スクリプトをオプションで指定できます。Keepalived は、通知スクリプトに以下のパラメーターを渡します。

  • 1 ドル - グループ または インスタンス
  • 2 ドルグループ または インスタンス の名前
  • $3 — 新しい状態: マスターバックアップ、または 障害

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてクラスターにログインしている。

手順

  1. 必要なスクリプトを作成し、それを保持する ConfigMap オブジェクトを作成します。スクリプトには入力引数は指定されず、OK の場合は 0 を、fail の場合は 1 を返す必要があります。

    チェックスクリプト mycheckscript.sh:

    #!/bin/bash
        # Whatever tests are needed
        # E.g., send request and verify response
    exit 0
  2. 以下のコマンドを実行して ConfigMap オブジェクトを作成します。

    $ oc create configmap mycustomcheck --from-file=mycheckscript.sh
  3. スクリプトを Pod に追加します。マウントされた ConfigMap オブジェクトファイルの defaultMode はoc コマンドを使用するか、IP フェイルオーバー設定を編集することによって実行できる必要があります。

    1. 以下のコマンドを実行して、スクリプトを Pod に追加してください。0755( 10 進数で 493) という値が一般的です。以下に例を示します。

      $ oc set env deploy/ipfailover-keepalived \
          OPENSHIFT_HA_CHECK_SCRIPT=/etc/keepalive/mycheckscript.sh
      $ oc set volume deploy/ipfailover-keepalived --add --overwrite \
          --name=config-volume \
          --mount-path=/etc/keepalive \
          --source='{"configMap": { "name": "mycustomcheck", "defaultMode": 493}}'
      注記

      oc set env コマンドは空白を区別します。= 記号の両側に空白を入れることはできません。

    2. または、以下のコマンドを実行して ipfailover-keepalived の 設定を編集します。

      $ oc edit deploy ipfailover-keepalived

      ipfailover-keepalived の 設定例

          spec:
            containers:
            - env:
              - name: OPENSHIFT_HA_CHECK_SCRIPT
                value: /etc/keepalive/mycheckscript.sh
      ...
              volumeMounts:
              - mountPath: /etc/keepalive
                name: config-volume
            dnsPolicy: ClusterFirst
      ...
            volumes:
            - configMap:
                defaultMode: 0755
                name: customrouter
              name: config-volume
      ...

      ここでは、以下のようになります。

      spec.container.env.name
      OPENSHIFT_HA_CHECK_SCRIPT 環境変数がマウントされたスクリプトファイルを指すように指定します。
      spec.container.volumeMounts
      マウントポイントを作成する spec.container.volumeMounts フィールドを指定します。
      spec.volumes
      config map を参照するための新しい spec.volumes フィールドを指定します。
      spec.volumes.configMap.defaultMode
      ファイルに対する実行権限を指定します。読み取られる場合は 10 進数 (493) で表示されます。
    3. 変更を保存し、エディターを終了します。これにより 、ipfailover-keepalived の 設定が再起動されます。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る