etcd database size is approaching the maximum エラーが表示されるのはなぜですか?

クラスタ内の etcd データベースの容量に関する問題をトラブルシューティングします。

仮想プライベートクラウド クラシック・インフラストラクチャー Satellite

次のようなエラーメッセージが表示されます。

etcd database size is approaching the maximum

Red Hat OpenShift on IBM Cloud は、すべてのクラスタデータのバッキングストアとして etcd データベースを使用します。 このデータベースには、コンフィグマップ、シークレット、デプロイメント、その他すべての Kubernetes リソースが保存されます。 Red Hat OpenShift on IBM Cloud、バッキング etcd データベースのサイズは最大4 GiB, に制限されており、通常の運用条件下では十分な容量を提供します。 ただし、ユーザーまたはプロセスが非常に多くのオブジェクトを作成すると、使用中のデータベース・サイズが最大サイズに達する可能性があります。

etcd、データベースのスペースを占有しているリソースを特定する。

  1. 以下のコマンドを実行して、apiserver からメトリックを検査します。

    kubectl get --raw /metrics
    
  2. apiserver_storage_objects metrics の出力を検索します。これにより、 etcd データベースに存在する各種類のオブジェクトの数が分かります。 数万または数十万の関連オブジェクトを持つリソース・タイプを探します。 これらのリソースが、最も可能性の高い問題の原因です。 ただし、重要なのは、これらのオブジェクトの数ではなく、オブジェクトのサイズであることに注意してください。

  3. 前のステップで識別したリソースについて、それらの設定を確認して調整し、作成されるオブジェクトの数を減らします。 例えば、自動的に作成されるシークレットの数が多すぎるオペレーターが誤って構成されているという問題がよく発生します。

  4. リソース設定を調整した後、リソースをクリーンアップして、 etcd データベースのサイズを元に戻します。

  5. 問題が解決しない場合は、サポートにお問い合わせください。 サポート Case を開きます。 ケースの詳細には、関連するログ・ファイル、エラー・メッセージ、またはコマンド出力を必ず含めてください。