分析情報と推奨事項で GKE の使用を最適化する

Google Kubernetes Engine(GKE)を使用すると、クラスタの最適化の手引きとなるガイダンスを受け取ることができます。

GKE はクラスタをモニタリングし、最適化の余地がある場合は、 Cloud de Confiance by S3NSのリソースを使用するための分析情報と推奨事項を生成する Cloud de Confiance by S3NS サービスの Recommender によってガイダンスが提供されます。GKE の場合は、Recommender によって次の 2 種類の情報が提供されます。

  • 分析情報: GKE がクラスタの使用を最適化する方法があることを確認したことを明らかにします。
  • 推奨事項: クラスタの使用を最適化する方法を説明します。

この情報は、GKE によって Cloud de Confiance コンソールに配信され、Google Cloud CLI や Recommender API でも確認できます。GKE では、以下ようなトピックに関する Recommender が用意されています。

始める前に

作業を始める前に、次のタスクが完了していることを確認してください。

  • Google Kubernetes Engine API を有効にする。
  • Google Kubernetes Engine API の有効化
  • このタスクに Google Cloud CLI を使用する場合は、 インストールして 初期化する gcloud CLI。gcloud CLI をインストール済みの場合は、最新の バージョンをgcloud components updateコマンドを実行して取得します。以前のバージョンの gcloud CLI では、このドキュメントのコマンドを実行できない場合があります。

必要なロール

Kubernetes の分析情報と推奨事項に必要な権限が、次の基本ロールまたは事前定義ロールにあることを確認します。

分析情報と推奨事項を表示する

分析情報と推奨事項は、Google Cloud CLI、Cloud de Confiance コンソール、Recommender API で確認できます。

コンソール

コンソールで推奨事項を表示する方法は 2 つあります。ビューの上部にある概要スコアカードを使用すると、プロジェクト内のすべてのクラスタの健全性、アップグレード、費用の最適化に関する推奨事項の集計結果を確認できます。

または、クラスタごとの最適化案のリストを表示することもできます。

スコアカードを使用して推奨事項を表示する手順は次のとおりです。

  1. Cloud de Confiance コンソールで [Google Kubernetes Engine] ページに移動します。

    Google Kubernetes Engine に移動

  2. 個々の推奨事項の影響を受けるクラスタの数を表示するには、表示するカテゴリ([健全性]、[アップグレード]、[費用])の下にある [推奨事項を表示] をクリックします。表示されたサイドバー パネルの推奨事項のリストには、各推奨事項の影響を受けるクラスタの数が表示されます。

  3. 影響を受けるクラスタの名前などの詳細を表示するには、推奨事項の名前をクリックします。

  4. 影響を受ける各クラスタの詳細を表示するには、推奨事項をもう一度クリックします。

クラスタごとの推奨事項を表示する手順は次のとおりです。

  1. Cloud de Confiance コンソールで [Google Kubernetes Engine] ページに移動します。

    Google Kubernetes Engine に移動

  2. 特定のクラスタの [Notifications] 列をクリックして分析情報と推奨事項を確認します。

  3. 詳細を表示するには、分析情報をクリックします。表示されたサイドバー パネルには、関連する推奨事項を含む、この分析情報の詳細が表示されます。

gcloud

通常、分析情報には対応する推奨事項があります。分析情報は gcloud recommender insights で取得され、推奨事項は gcloud recommender recommendations で取得されます。

  1. 特定ゾーン(ゾーンクラスタの場合)または特定リージョン(リージョン クラスタの場合)のクラスタに関する分析情報の一覧を表示します。

    gcloud recommender insights list \
        --insight-type=google.container.DiagnosisInsight \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT \
        --filter="insightSubtype:SUBTYPE"
    

    次のように置き換えます。

    • PROJECT_ID: クラスタが配置されているプロジェクトの Cloud de Confiance by S3NS プロジェクト ID。
    • LOCATION: クラスタの正確なリージョンまたはゾーン。ゾーンクラスタの場合は、正確なゾーン(us-central1-c など)を指定する必要があります。リージョン クラスタの場合は、正確なリージョン(us-central1 など)を指定する必要があります。
    • FORMAT: 出力形式を YAML に変更します。このフラグは省略可能です。
    • SUBTYPE: 分析情報のサブタイプ(例: DEPRECATION_K8S_1_23_CERTIFICATE)。これにより、出力は指定したサブタイプの分析情報に制限されます。このフラグは省略可能です。

    また、すでに分析情報 ID がある場合は、次のコマンドを実行して分析情報の詳細を確認できます。

    gcloud recommender insights describe INSIGHT \
        --insight-type=google.container.DiagnosisInsight \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT
    

    INSIGHT は、分析情報の name フィールドの URL の末尾に指定された分析情報 ID に置き換えます。

    出力には、GKE がクラスタで検出した動作に関する詳細な補足情報が含まれます。

  2. 特定のゾーン(ゾーンクラスタの場合)または特定のリージョン(リージョン クラスタの場合)のクラスタに関する推奨事項の一覧を表示します。

    gcloud recommender recommendations list \
        --recommender=google.container.DiagnosisRecommender \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT \
        --filter="recommenderSubtype:SUBTYPE"
    

    SUBTYPE は、Recommender のサブタイプDEPRECATION_K8S_1_23_CERTIFICATE など)に置き換えます。これにより、出力は指定したサブタイプの推奨事項に制限されます。このフラグは省略可能です。

    また、推奨事項 ID がすでにある場合は、次のコマンドを実行して推奨事項を表示できます。

    gcloud recommender recommendations describe RECOMMENDATION_ID \
        --recommender=google.container.DiagnosisRecommender \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT
    

    RECOMMENDATION_ID は、ステップ 1 のコマンド出力の associatedRecommendations.recommendation の保存値に置き換えます。

    出力には、クラスタでの GKE の使用を最適化するために必要なアクションに関するガイダンスが記載されています。

API

それぞれの分析情報には、対応する推奨事項があります。分析情報は REST Resource: projects.locations.insightTypes.insights で取得され、推奨事項は REST Resource: projects.locations.recommenders.recommendations で取得されます。

  1. 特定ゾーン(ゾーンクラスタの場合)または特定リージョン(リージョン クラスタの場合)のクラスタに関する分析情報の一覧を表示します。

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights?filter=insightSubtype%20%3D%20SUBTYPE
    

    次のように置き換えます。

    • PROJECT_ID: クラスタが配置されているプロジェクトの Cloud de Confiance by S3NS プロジェクト ID。
    • LOCATION: クラスタの正確なリージョンまたはゾーン。ゾーンクラスタの場合は、正確なゾーン(us-central1-c など)を指定する必要があります。リージョン クラスタの場合は、正確なリージョン(us-central1 など)を指定する必要があります。
    • SUBTYPE: 分析情報のサブタイプ(例: DEPRECATION_K8S_1_23_CERTIFICATE)。これにより、出力は指定したサブタイプの分析情報に制限されます。このフラグは省略可能です。

    また、すでに分析情報 ID がある場合は、次のリクエストを行うことで分析情報の詳細を確認できます。

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights/INSIGHT
    

    INSIGHT は、分析情報の name フィールドの URL の末尾に指定された分析情報 ID に置き換えます。

    レスポンス本文には、GKE がクラスタで検出した動作の詳細が含まれています。

  2. 特定のゾーン(ゾーンクラスタの場合)または特定のリージョン(リージョン クラスタの場合)のクラスタに関する推奨事項の一覧を表示します。

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations?filter=recommenderSubtype%20%3D%20SUBTYPE
    

    SUBTYPE は、Recommender のサブタイプDEPRECATION_K8S_1_23_CERTIFICATE など)に置き換えます。これにより、出力は指定したサブタイプの推奨事項に制限されます。このフラグは省略可能です。

    また、推奨事項 ID がすでにある場合は、次のリクエストを行うことで推奨事項を表示できます。

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations/RECOMMENDATION_ID
    

    RECOMMENDATION_ID は、ステップ 1 のレスポンス本文から取得した associatedRecommendations.recommendation の保存値に置き換えます。

    レスポンスの本文には、クラスタによる GKE の使用を最適化するために必要なアクションに関するガイダンスが記載されています。

分析情報と推奨事項を BigQuery にエクスポートする

BigQuery を使用すると、組織全体の分析情報や推奨事項をエクスポートして分析できます。詳細については、BigQuery に推奨事項をエクスポートするをご覧ください。

推奨事項を拒否する、復元する

Cloud de Confiance コンソールにクラスタの推奨事項が表示されないようにするには、その推奨事項を拒否します。たとえば、推奨事項を評価した結果として実装しないと決めた場合などにこの操作を行います。

推奨事項を拒否すると、コンソールでクラスタを表示しているどのユーザーには表示されなくなります。推奨事項を拒否した後は、GKE が同じ動作を検出しても再度表示されることはありません。

推奨事項を拒否しても、すべてのユーザーのコンソールで非表示になるだけです。その推奨事項の Google Cloud CLI や Recommender API による検出は引き続き可能です。

推奨事項を拒否する

推奨事項を拒否する場合は、 分析情報と推奨事項を表示するの手順に沿って、 Cloud de Confiance コンソールでサイドバー パネルを開いて詳細を表示します。 そのパネルで、[拒否する] ボタンをクリックします。

Google Cloud CLI を使用して推奨事項を拒否する

gcloud CLI を使用して推奨事項を拒否するには、アクティブな推奨事項の「etag 値」を見つけて、拒否済みとしてマークする必要があります。

  1. アクティブな推奨事項を一覧表示する: 拒否する推奨事項を見つけるには、クラスタのアクティブな推奨事項を一覧表示します。すでに拒否されている推奨事項、成功または失敗した推奨事項を除外するには、 推奨事項 フラグを使用します。--filter

    gcloud recommender recommendations list \
        --recommender=RECOMMENDER_ID \
        --project=PROJECT_ID \
        --location=LOCATION \
        --filter="stateInfo.state=ACTIVE"
    

    次のように置き換えます。

    • RECOMMENDER_ID: Recommender の ID。
    • PROJECT_ID: クラスタが配置されているプロジェクトの Cloud de Confiance by S3NS プロジェクト ID。
    • LOCATION: クラスタの正確なリージョンまたはゾーン。ゾーン クラスタの場合は、正確なゾーン(us-central1-cなど)を指定する必要があります。 リージョン クラスタの場合は、正確なリージョン( us-central1など)を指定する必要があります。
  2. etag を取得する: 前の出力から RECOMMENDATION_ID を見つけて、現在の状態と etag を取得します。

    gcloud recommender recommendations describe RECOMMENDATION_ID \
        --recommender=RECOMMENDER_ID \
        --project=PROJECT_ID \
        --location=LOCATION
    

    次のように置き換えます。

    • RECOMMENDATION_ID: 拒否する推奨事項の ID。

    出力の etag 値("a770e444b0088a35" など)をメモします。

  3. 拒否済みとしてマークする: mark-dismissed コマンドを実行します。Recommender API では、競合状態を防ぐために正確な etag が必要です。

    gcloud recommender recommendations mark-dismissed RECOMMENDATION_ID \
        --recommender=RECOMMENDER_ID \
        --project=PROJECT_ID \
        --location=LOCATION \
        --etag='"ETAG_VALUE"'
    

    次のように置き換えます。

    • ETAG_VALUE: describe コマンドから返された etag 値。

拒否した推奨事項を復元する

拒否した推奨事項は、推奨事項を復元するの手順に沿って復元できます。

次のステップ