GKE のスケーラビリティのトラブルシューティング

etcd データベースの使用率が高いと、クラスタが不安定になり、リソースが不足して、Google Kubernetes Engine(GKE)クラスタが効果的にスケーリングできなくなる可能性があります。

このドキュメントでは、etcd の使用量が上限に近づいているクラスタを特定する方法と、空き容量を増やすための推奨事項を確認する方法について説明します。これにより、クラスタの安定性を維持できます。

この情報は、GKE クラスタの健全性とスケーラビリティの維持を担当するプラットフォーム管理者とオペレーターにとって重要です。 Google Cloud コンテンツで使用されている一般的なロールとタスクの例については、一般的な GKE ユーザーロールとタスクをご覧ください。

このドキュメントでは、etcd の使用率が高いことに関連するクラスタの安定性のトラブルシューティングについて説明します。別のスケーラビリティの問題が発生した場合は、次のいずれかのドキュメントが役立つことがあります。

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 クラスタを計画するをご覧ください。

次のステップ

  • このドキュメントで問題を解決できない場合は、サポートを受けるで、次のトピックに関するアドバイスなど、詳細なヘルプをご覧ください。