第2章 1 回実行 (Run-once) タスク

OpenShift Container Platform のインストール後、ホストのスムーズな実行を維持するためにシステムへの追加の設定が必要になる場合があります。

これらは 1 回実行 (run-once) タスクとして分類され、これらのタスクは状況の変更に応じていつでも実行できます。

2.1. NTP 同期

NTP (ネットワークタイムプロトコル) は、常にホストを世界時計と同期します。時間の同期は、ログの記録やタイムスタンプなどの時間に依存する操作に重要であり、OpenShift Containter Platform のビルドに使用される Kubernetes で使用することが強く推奨されます。OpenShift Container Platform の操作には etcd リーダーの選択、Pod およびその他の問題のヘルスチェックが含まれ、これらは時間のずれの発生を防ぐのに役立ちます。

注記

OpenShift Container Platform インストール Playbook は、デフォルトで NTP サービスを提供するために ntp パッケージをインストールし、有効にし、設定します。この動作を無効にするには、インベントリーファイルに openshift_clock_enabled=false を設定します。ホストに chrony パッケージがすでにインストールされている場合、ntp パッケージを使用する代わりに NTP サービスを提供するように設定されます。

インスタンスによっては、NTP がデフォルトで有効にされていない場合があります。ホストが NTP を使用するように設定されていることを確認するには、以下を実行します。

$ timedatectl
      Local time: Thu 2017-12-21 14:58:34 UTC
  Universal time: Thu 2017-12-21 14:58:34 UTC
        RTC time: Thu 2017-12-21 14:58:34
       Time zone: Etc/UTC (UTC, +0000)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

NTP enabledNTP synchronized の両方が yes の場合、NTP 同期は有効にされています。

no の場合、ntp または chrony RPM パッケージをインストールし、有効にします。

ntp パッケージをインストールするには、以下のコマンドを実行します。

# timedatectl set-ntp true

chrony パッケージをインストールするには、以下のコマンドを実行します。

# yum install chrony
# systemctl enable chronyd --now
重要

時間の同期は、NTP を使用しているか、その他の方法を使用しているかにかかわらず、クラスター内のすべてのホストで有効にされている必要があります。

timedatectl コマンド、タイムゾーンおよび時計の同期についての詳細は、「日付と時刻の設定」および「UTC、タイムゾーン、および DST」を参照してください。

2.2. エントロピー

OpenShift Container Platform はエントロピーを使用して ID または SSL トラフィックなどのオブジェクトの乱数を生成します。これらの操作はタスクを完了するのに十分なエントロピーが用意されるまで待機します。十分なエントロピーがないと、カーネルは適切なスピードでこれらの乱数を生成することができません。これにより、タイムアウトが生じたり、セキュアな接続が拒否される可能性があります。

利用可能なエントロピーを確認するには、以下を実行します。

$ cat /proc/sys/kernel/random/entropy_avail
2683

利用可能なエントロピーはクラスター内のすべてのホストで検証する必要があります。この値は、1000 より大きい値に指定することが適切です。

注記

Red Hat では、この値をモニターすること、およびこの値が 800 未満の場合には警告を発行することを推奨しています。

または、rngtest コマンドを使用すると、十分なエントロピーだけでなく、システムが十分なエントロピーを フィード できるかどうかを確認できます。

$ cat /dev/random | rngtest -c 100

rngtest コマンドは rng-tools で利用できます。

上記のタスクの完了に約 30 秒の時間がかかる場合、利用可能なエントロピーが十分にないことを示しています。

ご使用の環境によっては、複数の方法でエントロピーを増やすことができます。詳細については、こちらのブログ (https://developers.redhat.com/blog/2017/10/05/entropy-rhel-based-cloud-instances/) を参照してください。

通常は rng-tools パッケージをインストールし、rngd サービスを有効にしてエントロピーを増大させることができます。

# yum install rng-tools
# systemctl enable --now rngd

rngd サービスが起動すると、エントロピーは十分なレベルに引き上げられるはずです。

2.3. デフォルトストレージクラスのチェック

動的にプロビジョニングされる永続ストレージの適切な機能を維持するには、デフォルトのストレージグラスを定義しておく必要があります。インストール時に、このデフォルトストレージクラスは Amazon Web Services (AWS)、Google Cloud Platform (GCP) などの共通のクラウドプロバイダーについて定義されます。

デフォルトストレージクラスが定義されていることを確認するには、以下を実行します。

$ oc get storageclass
NAME                 TYPE
ssd                  kubernetes.io/gce-pd
standard (default)   kubernetes.io/gce-pd

上記の出力は GCP で実行されている OpenShift Container Platform インスタンスから取られるものです。ここでは、標準 (HDD) および SSD の 2 種類の永続ストレージが利用可能です。標準ストレージクラスはデフォルトとして設定されることに注意してください。ストレージクラスが定義されていない場合や、いずれもデフォルトとして設定されていない場合には、「動的プロビジョニングとストレージクラスの作成」のセクションを参照し、ストレージクラスのセットアップ方法を確認してください。