Google Kubernetes Engine(GKE)を使用すると、クラスタの最適化の手引きとなるガイダンスを受け取ることができます。
GKE はクラスタをモニタリングし、最適化の余地がある場合は、Google Cloud のリソースを使用するための分析情報と推奨事項を生成する Google Cloud サービスの Recommender によってガイダンスが提供されます。GKE の場合は、Recommender によって次の 2 種類の情報が提供されます。
- 分析情報: GKE がクラスタの使用を最適化する方法があることを確認したことを明らかにします。
- 推奨事項: クラスタの使用を最適化する方法を説明します。
この情報は、GKE によって Google Cloud コンソールに配信され、Google Cloud CLI や Recommender API でも確認できます。GKE では、以下ようなトピックに関する Recommender が用意されています。
- 非推奨: 非推奨の Kubernetes 機能や API へのアクセスを低減します。
- オペレーションと接続: コントロール プレーンとノードの接続、IP アドレスの使用率に関連する問題を修正します。
- 費用の最適化: 費用を最適化した構成と手法を導入します。たとえば、アイドル状態の GKE クラスタを特定するをご覧ください。
- Agones: クラスタ内で Agones コントローラを分離します。
- 中断: メンテナンス中のワークロードの継続性と復元性を確保します。
- Webhook: Webhook 使用時のコントロール プレーンの安定性を確保します。
- データ保護: ワークロードが停止イベントから保護されるようにします。
- クラスタの認証情報: クラスタの認証情報をローテーションして、停止を防ぎます。
始める前に
始める前に、次の作業が完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、
gcloud components update
を実行して最新のバージョンを取得する。
必要なロール
Kubernetes の分析情報と推奨事項に必要な権限が、次の基本ロールまたは事前定義ロールにあることを確認します。
次のいずれかのロールを使用して分析情報と推奨事項を表示します。
分析情報と推奨事項の状態を表示して更新します(例: 推奨事項を閉じる)。
分析情報と推奨事項を表示する
分析情報と推奨事項は、Google Cloud CLI、Google Cloud コンソール、または Recommender API で表示できます。
コンソール
Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
特定のクラスタの [通知] 列で分析情報を確認します。
分析情報をクリックして詳細を表示します。表示されたサイドバー パネルには、関連する推奨事項を含む、この分析情報の詳細が表示されます。
gcloud
通常、分析情報には対応する推奨事項があります。分析情報は gcloud recommender insights
で取得され、推奨事項は gcloud recommender recommendations
で取得されます。
特定ゾーン(ゾーンクラスタの場合)または特定リージョン(リージョン クラスタの場合)のクラスタに関する分析情報の一覧を表示します。
gcloud recommender insights list \ --insight-type=google.container.DiagnosisInsight \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT \ --filter="insightSubtype:SUBTYPE"
次のように置き換えます。
PROJECT_ID
: クラスタが配置されているプロジェクトの Google Cloud プロジェクト 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 がクラスタで検出した動作に関する詳細な補足情報が含まれます。
特定のゾーン(ゾーンクラスタの場合)または特定のリージョン(リージョン クラスタの場合)のクラスタに関する推奨事項の一覧を表示します。
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 で取得されます。
特定ゾーン(ゾーンクラスタの場合)または特定リージョン(リージョン クラスタの場合)のクラスタに関する分析情報の一覧を表示します。
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights?filter=insightSubtype%20%3D%20SUBTYPE
次のように置き換えます。
PROJECT_ID
: クラスタが配置されているプロジェクトの Google Cloud プロジェクト 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 がクラスタで検出した動作の詳細が含まれています。
特定のゾーン(ゾーンクラスタの場合)または特定のリージョン(リージョン クラスタの場合)のクラスタに関する推奨事項の一覧を表示します。
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 への推奨事項のエクスポートをご覧ください。
推奨事項を解決する
推奨事項を実装した場合は、Google Cloud コンソールで推奨事項を解決済みとしてマークできます。推奨事項を解決済みとしてマークすると、どのユーザーのコンソールにも表示されなくなります。推奨事項を解決した後、GKE がこのクラスタに対して同じ動作を検出すると、Recommender はその推奨事項を再度表示します。推奨事項を解決しても、それは Google Cloud CLI と Recommender API で検出できます。
Recommender の動作によっては、推奨事項を実装した後も一定期間、引き続き推奨事項を表示し続ける可能性があるため、推奨事項を解決済みとしてマークすることをおすすめします。
推奨事項に解決済みのマークを付けるには、分析情報と推奨事項を表示するの手順に沿って、Google Cloud コンソールでサイドバー パネルを開くと詳細が表示されます。そのパネルで、[解決済みにする] ボタンをクリックします。
推奨事項を拒否する、復元する
Google Cloud コンソールにクラスタの推奨事項が表示されないようにするには、その推奨事項を拒否します。たとえば、推奨事項を評価した結果として実装しないと決めた場合などにこの操作を行います。
推奨事項を拒否すると、コンソールでクラスタを表示しているどのユーザーには表示されなくなります。推奨事項を拒否した後は、GKE が同じ動作を検出しても再度表示されることはありません。
推奨事項を拒否しても、すべてのユーザーのコンソールで非表示になるだけです。その推奨事項の Google Cloud CLI や Recommender API による検出は引き続き可能です。
推奨事項を拒否する
推奨事項を拒否する場合は、分析情報と推奨事項を表示するの手順に沿って、Google Cloud コンソールでサイドバー パネルを開いて詳細を表示します。そのパネルで、[拒否する] ボタンをクリックします。
拒否した推奨事項を復元する
拒否した推奨事項は、推奨事項を復元するの手順に沿って復元できます。
次のステップ
- Recommender の詳細を確認する