新しい Policy Controller ポリシー バンドルで Kubernetes の費用対効果と信頼性を向上
Google Cloud Japan Team
※この投稿は米国時間 2023 年 10 月 17 日に、Google Cloud blog に投稿されたものの抄訳です。
Kubernetes チームは、単に重要なワークロードを実行するだけでなく、それらのワークロードの信頼性と費用対効果を確保することも必要です。Google Cloud は、最近公開した State of Kubernetes Cost Optimization(Kubernetes の費用最適化の現状)レポートで費用最適化のための規範的ベスト プラクティスを提示し、その多くを Policy Controller の新しい費用と信頼性ポリシー バンドルに組み込みました。これにより、ワークロードの潜在的な改善点が自動的に特定されるため、信頼性と費用対効果を向上させることができます。
Google Kubernetes Engine(GKE)の Policy Controller を使用すると、完全にプログラム可能なポリシーをクラスタに適用できます。ポリシー バンドルとは、Google Cloud が作成および管理するビルド済みの制約のセットです。ポリシー バンドルは、Kubernetes 基準、業界基準、Google Cloud 推奨のベスト プラクティスに照らしたクラスタ リソースの監査に役立ちます。利用可能なポリシー バンドルが多数用意されており、新規ユーザー、既存ユーザーを問わず、コードを 1 行も記述することなく簡単に使用できます。また、Policy Controller ダッシュボードを使用して、クラスタのフリートに対するポリシー バンドルのカバレッジとコンプライアンスの状況を確認することもできます。
新しい費用と信頼性ポリシー バンドル
新しい費用と信頼性ポリシー バンドルで違反を確認することで、Kubernetes 管理者は、アプリケーションが費用と信頼性の推奨事項にどの程度適合しているかを把握できます。
費用と信頼性ポリシー バンドルには、以下の構成が必要です。
- PodDisruptionBudget 構成
- ベスト プラクティスに従った CPU とメモリのリクエストの設定
- 環境、チーム、アプリの各ラベル
- コンテナ イメージ リポジトリではイメージ ストリーミングの利用が必須
- gke-spot での terminationGracePeriodSeconds が 15 秒以下であること
これらのベスト プラクティスの背景にある調査と理由の詳細については、State of Kubernetes Cost Optimization レポートをご覧ください。
費用と信頼性ポリシー バンドルを使用する
費用と信頼性ポリシー バンドルによって特定された違反を確認できるようにしましょう。バンドルに含まれているポリシーは、デフォルトでは「監査」モードで構成されているので、既存のワークロードや新しいワークロードに影響しません。費用と信頼性ポリシー バンドルを適用するには、以下の複数のチャネルを利用できます。
UI 経由でのインストール(プレビュー版)
現在、限定公開プレビュー版で提供されている GKE Enterprise でクラスタをご利用のお客様向けに、新しい UI を使って Policy Controller ポリシー バンドルをインストールする方法をご用意しました。Google Cloud の既存のお客様で、GKE Enterprise をお試しになりたい場合は、Google のアカウント担当者にお申し込みについてお問い合わせください。それ以外の方は、Google Cloud セールス スペシャリストにお問い合わせください。
UI を使って Policy Controller の費用と信頼性ポリシー バンドルをインストールする手順は次のとおりです。
- Google Cloud コンソールで、Google Kubernetes Engine Enterpriseの [ポリシー] に移動します。
- Policy Controller(v1.16.1 以降)がまだクラスタにインストールされていない場合は、[POLICY CONTROLLER のインストール] をクリックしてインストールできます。
- [設定] タブ(下画を参照)で [構成の編集] の下にある鉛筆アイコンをクリックします。
- 「Cost and Reliability」の横にある [有効にする] スライダーをクリックし、[変更を保存] をクリックします。


Policy Controller ダッシュボードを使用したポリシー バンドルのインストール
Policy Controller ダッシュボードで違反を確認する
クラスタでの違反は、Policy Controller ダッシュボードを使用して UI から確認できます。


Policy Controller ダッシュボード
違反を修正する場合は、クラスタとリソースの yaml を更新することをおすすめします。ガイドラインをご覧ください。各違反には修正手順も含まれており、CLI と Policy Controller ダッシュボードの両方から確認できます。
費用と信頼性ポリシー バンドルへの違反の有無を確認するためのクラスタのモニタリング
デフォルトでは、費用と信頼性ポリシー バンドルの違反に対する措置はドライランに設定されています。これは、Policy Controller が変更をブロックせずに違反を表示できるようにするための設定です。これにより、クラスタの監査、ワークロード オーナーとの違反の共有や共同修正が可能になります。
すべてのポリシー違反は自動的に Cloud Logging に記録され、ログ エクスプローラで以下のフィルタを適用して見つけることができます。
ポリシー違反が発生するたびに通知を受け取れるよう、Cloud Monitoring を使用してログベースのアラートを設定することもできます。
Policy Controller には、制約の数、制約テンプレート、検出された監査違反などをはじめとする、ポリシーの使用に関連する指標が含まれています(利用可能な指標のリストを参照)。インストール時にこれらの指標を Cloud Monitoring と Prometheus、またはそのどちらかにエクスポートできます(ブログ投稿、ドキュメント)。また、指標に基づいてアラートを設定することもできます。
まとめ
Policy Controller を使用すれば、Google が作成、管理するポリシー バンドルとカスタム ポリシーをクラスタに適用できます。これにより、Kubernetes API に対する変更がセキュリティ、運用、コンプライアンスの管理に違反することを防止します。必要に応じて、Policy Controller を使用することで、Kubernetes クラスタにデプロイする前に構成を分析することもできます。
今すぐ使用を開始する
Policy Controller の使用を開始する際は、Policy Controller をインストールし、Google が作成、管理している他のポリシー バンドルを試す方法が最も簡単です。
- Anthos Service Mesh セキュリティ
- CIS GKE Benchmark v1.4.0
- CIS Kubernetes Benchmark v1.5.1
- NIST SP 800-53 Rev. 5
- NIST SP 800-190
- NSA CISA Kubernetes Hardening
- PCI-DSS v3.2.1
- Policy Essentials
- Pod Security Policy
- Pod Security Standards Baseline
- Pod Security Standards Restricted
ー Google Cloud、テクニカル ソリューション コンサルタント Andrew Peabody
ー Google Cloud、プロダクト マネージャー Poonam Lamba