第2章 1 回実行 (Run-once) タスク
OpenShift Container Platform のインストール後、ホストのスムーズな実行を維持するためにシステムへの追加の設定が必要になる場合があります。
これらは 1 回実行 (run-once) タスクとして分類され、これらのタスクは状況の変更に応じていつでも実行できます。
2.1. NTP 同期
NTP (ネットワークタイムプロトコル) は、常にホストを世界時計と同期します。時間の同期は、ログの記録やタイムスタンプなどの時間に依存する操作に重要であり、OpenShift Containter Platform のビルドに使用される Kubernetes で使用することが強く推奨されます。OpenShift Container Platform の操作には etcd リーダーの選択、Pod およびその他の問題のヘルスチェックが含まれ、これらは時間のずれの発生を防ぐのに役立ちます。
インスタンスによっては、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 enabled
と NTP 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 インスタンスからの出力を抜粋したものです。この OpenShift Container Platform インスタンスでは、標準 (HDD) および SSD の 2 種類の永続ストレージが利用可能です。標準ストレージクラスはデフォルトとして設定されることに注意してください。ストレージクラスが定義されていない場合や、デフォルトとして何も設定されていない場合には、「動的プロビジョニングとストレージクラスの作成」のセクションを参照し、ストレージクラスの設定方法を確認してください。