Red Hat Training

A Red Hat training course is available for RHEL 8

第12章 コンテナーの監視

本章では、コンテナーの正常性の判別、システムおよび Pod 情報の表示、Podman イベントの監視など、Podman 環境を管理できる便利な Podman コマンドについて主に説明します。

12.1. コンテナーでの Healthcheck の実行

Healthcheck を使用すると、コンテナー内で実行されるプロセスの健全性または準備状態を判別できます。Healthcheck は、以下の基本的なコンポーネント 5 つで構成されます。

  • Command
  • Retries
  • Interval
  • Start-period
  • Timeout

以下は、healthcheck コンポーネントの説明です。

Command
Podman は、ターゲットコンテナー内でコマンドを実行して終了コードを待ちます。

他の 4 つのコンポーネントは任意で healthcheck のスケジューリングに関係があります。

Retries
「正常でない」とマークするまでに、ヘルスチェックで連続して不合格とならなければならないか、その回数を定義します。Healthcheck に成功すると、再試行数がリセットされます。
Interval
次回に healthcheck コマンドを実行するまでの時間を指定します。間隔が短いと、システムでの healthcheck の実行時間が長くなる点に注意してください。間隔が長いと、タイムアウトの検出が困難になります。
Start-period
コンテナーを起動してから healthcheck の不合格を無視するまでの時間を指定します。
Timeout
healthcheck の完了前に不合格とみなされるまでの期間を指定します。

Healthcheck はコンテナー内で実行されます。Healthcheck は、サービスが正常な状態を理解しており、ヘルスチェックの成功と不合格を区別できる場合にだけ役に立ちます。

手順

  1. Healthcheck を定義します。

    $ sudo podman run -dt --name hc1 --health-cmd='curl http://localhost || exit 1' --health-interval=0 quay.io/libpod/alpine_nginx:latest
    D25ee6faaf6e5e12c09e734b1ac675385fe4d4e8b52504dd01a60e1b726e3edb
    • --health-cmd オプションは、コンテナーの healthcheck コマンドを設定します。
    • healthcheck を手動で実行するには、-health-interval=0 オプション で 0 の値を指定します。
  2. Healthcheck を手動で実行します。

    $ sudo podman healthcheck run hc1
    Healthy
  3. 必要に応じて、最後のコマンドの終了ステータスを確認できます。

    $ echo $?
    0

    「0」値は成功したことを指します。

関連情報