etcd データベースの使用率が高いと、クラスタが不安定になり、リソースが不足して、Google Kubernetes Engine(GKE)クラスタが効果的にスケーリングできなくなる可能性があります。
このドキュメントでは、etcd の使用量が上限に近づいているクラスタを特定する方法と、空き容量を増やすための推奨事項を確認する方法について説明します。これにより、クラスタの安定性を維持できます。
この情報は、GKE クラスタの健全性とスケーラビリティの維持を担当するプラットフォーム管理者とオペレーターにとって重要です。 Google Cloud コンテンツで使用されている一般的なロールとタスクの例については、一般的な GKE ユーザーロールとタスクをご覧ください。
このドキュメントでは、etcd の使用率が高いことに関連するクラスタの安定性のトラブルシューティングについて説明します。別のスケーラビリティの問題が発生した場合は、次のいずれかのドキュメントが役立つことがあります。
クラスタ オートスケーラーの問題:
- 新しいノードが追加されない理由のトラブルシューティングについては、クラスタ オートスケーラーがスケールアップしない問題のトラブルシューティングをご覧ください。
- 使用率の低いノードが削除されない理由のトラブルシューティングについては、クラスタ オートスケーラーがスケールダウンしない問題のトラブルシューティングをご覧ください。
Horizontal Pod Autoscaler の問題: Horizontal Pod Autoscaler が機能しない理由のトラブルシューティングについては、水平 Pod 自動スケーリングのトラブルシューティングをご覧ください。
Autopilot のスケーリングの問題: スケーリングに関連する問題など、Autopilot 固有の問題の詳細については、Autopilot クラスタのトラブルシューティングをご覧ください。
etcd の使用量が上限に近づいているクラスタを特定する
GKE は、etcd の使用量が上限に近づいている状況について分析情報と推奨事項を提供します。これらの分析情報と推奨事項は、次の方法で確認できます。
- Google Cloud コンソールを使用します。[Kubernetes クラスタ] ページに移動します。特定のクラスタの [通知] 列で、「クラスタが不安定になるリスクを軽減するため、空き容量を増やしてください」という推奨事項を確認します。
gcloud CLI または Recommender API を使用して、
ETCD_DB_USAGE_APPROACHING_LIMIT
Recommender サブタイプを指定します。この推奨事項をクエリするには、次のコマンドを実行します。
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=yaml \ --filter="recommenderSubtype:ETCD_DB_USAGE_APPROACHING_LIMIT"
この推奨事項を実装するには、etcd から不要なデータを削除して空き容量を確保します。etcd からの古いリソースの削除や、サイズの大きなオブジェクトの移動が必要な場合があります。詳細については、大規模な GKE クラスタを計画するをご覧ください。
オブジェクト タイプごとのストレージ使用量が上限に近づいているクラスタを特定する
GKE は、タイプごとの etcd オブジェクトの合計サイズが上限に近づいている状況について分析情報と推奨事項を提供します。これらの分析情報と推奨事項は、次の方法で確認できます。
- Google Cloud コンソールを使用します。[Kubernetes クラスタ] ページに移動します。特定のクラスタの [通知] 列で、「リソースタイプのサイズを縮小する」という推奨事項を確認します。
gcloud CLI または Recommender API を使用して、Recommender サブタイプ
APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT
を指定します。この推奨事項をクエリするには、次のコマンドを実行します。
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=yaml \ --filter="recommenderSubtype:APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT"
削除するオブジェクトを決定するには、kubectl を使用してオブジェクトを一覧表示します。たとえば、ConfigMap がストレージの上限に近づいている場合、次のコマンドはすべての Namespace のすべての ConfigMap を出力し、削除候補の特定に役立ちます。
kubectl get configmaps --all-namespaces > new_file.txt
この推奨事項を実装して空き容量を増やすには、指定されたタイプの不要なオブジェクトをストレージから削除します。このプロセスでは、ストレージから古いリソースを削除したり、サイズの大きなオブジェクトを移動したりすることが必要になる場合があります。詳細については、大規模な GKE クラスタを計画するをご覧ください。
次のステップ
このドキュメントで問題を解決できない場合は、サポートを受けるで、次のトピックに関するアドバイスなど、詳細なヘルプをご覧ください。
- Cloud カスタマーケアに問い合わせて、サポートケースを登録する。
- StackOverflow で質問する、
google-kubernetes-engine
タグを使用して類似の問題を検索するなどして、コミュニティからサポートを受ける。#kubernetes-engine
Slack チャネルに参加して、コミュニティ サポートを利用することもできます。 - 公開バグトラッカーを使用して、バグの報告や機能リクエストの登録を行う。