3.9. etcd データベースのサイズを判別し、その影響を理解する
etcd データベースのサイズは、etcd のデフラグプロセスを完了するのに時間に直接影響を及ぼします。OpenShift Container Platform は、少なくとも 45% の断片化を検出すると、一度に 1 つの etcd メンバーで etcd デフラグを自動的に実行します。デフラグ処理中は、etcd メンバーは要求を処理できません。小さな etcd データベースでは、デフラグ処理は 1 秒未満で実行されます。etcd データベースが大きい場合、ディスクレイテンシーが断片化時間に直接影響し、デフラグの実行中に操作がブロックされるため、追加のレイテンシーが発生します。
etcd データベースのサイズは、ネットワークパーティションが一定期間コントロールプレーンノードを分離する際に考慮する要素であり、通信が再確立された後にコントロールプレーンを再同期する必要があります。
etcd データベースのサイズはシステム内の Operator やアプリケーションに依存するため、etcd データベースのサイズを制御する最小オプションが存在します。システムが動作するレイテンシーの範囲を検討する場合は、etcd データベースのサイズごとの同期またはデフラグの影響を考慮します。
その影響の大きさは、デプロイメントごとに異なります。デフラグが完了するまでの時間は、etcd メンバーがデフラグ処理中に更新を受け入れることができないため、トランザクションレートの低下を引き起こします。同様に、変更率の高い大規模データベースの etcd 再同期にかかる時間は、システム上のトランザクションレートとトランザクションレイテンシーに影響します。
計画が必要な影響の種類は、次の 2 つの例を検討してください。
- データベースサイズに基づく etcd デフラグの影響例
- etcd データベースを 1 GB の低速の 7200 RPM ディスクに 80 Mbit/s に書き込むには、約 1 分と 40 秒かかります。このようなシナリオでは、デフラグプロセスには、デフラグを完了するのに、少なくともこの長い時間がかかります。
- etcd 同期におけるデータベースサイズの影響例
- コントロールプレーンノードの 1 つの切断中に etcd データベースの 10% が変更される場合、再同期は少なくとも 100 MB を転送する必要があります。1 Gbps リンクで 100 MB を転送するには 800 ミリ秒かかります。Kubernetes API を使用した定期的なトランザクションを実行するクラスターでは、etcd データベースのサイズが大きくなるほど、ネットワークの不安定性が増し、コントロールプレーンの不安定性も生じます。
etcd データベースのサイズは、OpenShift Container Platform コンソールまたは etcdctl
ツールでコマンドを実行して判別できます。
手順
- OpenShift Container Platform コンソールでデータベースのサイズを見つけるには、etcd ダッシュボードに移動し、etcd データベースのサイズを報告するプロットを表示します。
etcdctl ツールを使用してデータベースのサイズを確認するには、以下の 2 つのコマンドを入力できます。
以下のコマンドを入力して Pod を一覧表示します。
oc get pods -n openshift-etcd -l app=etcd
# oc get pods -n openshift-etcd -l app=etcd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE etcd-m0 4/4 Running 4 22h etcd-m1 4/4 Running 4 22h etcd-m2 4/4 Running 4 22h
NAME READY STATUS RESTARTS AGE etcd-m0 4/4 Running 4 22h etcd-m1 4/4 Running 4 22h etcd-m2 4/4 Running 4 22h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、出力にデータベースのサイズを表示します。
oc exec -t etcd-m0 -- etcdctl endpoint status -w simple | cut -d, -f 1,3,4
# oc exec -t etcd-m0 -- etcdctl endpoint status -w simple | cut -d, -f 1,3,4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
https://198.18.111.12:2379, 3.5.6, 1.1 GB https://198.18.111.13:2379, 3.5.6, 1.1 GB https://198.18.111.14:2379, 3.5.6, 1.1 GB
https://198.18.111.12:2379, 3.5.6, 1.1 GB https://198.18.111.13:2379, 3.5.6, 1.1 GB https://198.18.111.14:2379, 3.5.6, 1.1 GB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow