
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Configuring a GKE cluster with Kubernetes Engine Monitoring and deploy a sample workload
/ 30
Deploy the GCP-GKE-Monitor-Test application
/ 35
Creating Alerts with Stackdriver Kubernetes Engine Monitoring
/ 35
このラボでは、まず GKE クラスタを構築して、Kubernetes Engine Monitoring で使用する Pod をデプロイします。グラフとカスタム ダッシュボードを作成し、カスタム指標を操作し、アラートを作成してそれに応答します。
このラボでは、次のタスクの実行方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] パネルでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] パネルでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
Google Kubernetes Engine には Monitoring 用のマネージド サポートが含まれています。
このタスクでは、Kubernetes Engine Monitoring をサポートする新しいクラスタを作成した後、Kubernetes Engine のモニタリングとロギングのインターフェースを使用して一般的なモニタリング タスクを実行します。
このタスクでは、Kubernetes Engine Monitoring を有効にした GKE クラスタを作成し、さらに、この演習で後ほど使用するサンプル ワークロードを GKE クラスタにデプロイします。
Google Cloud コンソールのナビゲーション メニュー()で、[Kubernetes Engine] > [クラスタ] をクリックします。
クラスタ名 [standard-cluster-1] をクリックすると、クラスタの詳細が表示されます。
詳細を確認するには、ページを下までスクロールします。
[機能] の [Logging] と [Cloud Monitoring] で、ロギングの種類が [システム] に設定されています。
作成した GKE クラスタの default Namespace にサンプル ワークロードをデプロイします。このワークロードは、シンプルな Hello World デモ アプリケーションを実行する 3 つの Pod からなる Deployment で構成されています。このラボでは後ほど、このワークロードの状態を Monitoring でモニタリングします。
この Deployment マニフェストにより、シンプルな Hello World デモ アプリケーションを実行する Pod が 3 つ作成されます。
このコマンドの出力から、default Namespace で hello-v2
アプリケーションが実行されていることがわかります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
作成した GKE クラスタの default Namespace に GCP-GKE-Monitor-Test アプリケーションをデプロイします。このワークロードは、1 つの Pod からなる Deployment で構成されており、その Pod が LoadBalancer Service によってインターネットに公開されます。
あるいは、次のように Docker を直接使用してイメージをビルドし、gcr.io に push することもできます。
gcp-gke-monitor-test.yaml
ファイル内のプレースホルダの値を、gcr.io に push した Docker イメージに置き換えます。このコマンドの出力から、default Namespace で hello-v2
アプリケーションが実行されていることがわかります。
このコマンドの出力から、default Namespace で gcp-gke-monitor-test-service
が実行されていることがわかります。この Service にまだ外部 IP アドレスが割り当てられていない場合は、割り当てられるまでこのコマンドを何度か実行してみてください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、GCP-GKE-Monitor-Test アプリケーションを使用して Kubernetes Engine Monitoring のさまざまな側面を見ていきます。このツールは次の 4 つのセクションで構成されています。
最初の [Generate CPU Load] セクションには、CPU Load Generator を開始および停止するためのボタンがあります。このツールは、数学演算のループを開始して CPU コア全体を消費します。また、CPU の飽和によって Pod を制御できなくなるのを防ぐために、プロセッサを一定の周期で 100 ナノ秒間解放します。これにより、Pod を強制終了することなく CPU Load Generator をすばやく停止できます。
2 つ目の [Custom Metrics] セクションを使用すると、Cloud Monitoring でカスタム指標のモニタリングを試すことができます。[Start Monitoring] をクリックすると、まず必要なカスタム指標記述子が作成され、その後、カスタム指標の値を 60 秒ごとに Monitoring に送信するループが開始されます。このツールにコーディングされているカスタム指標は、接続しているアクティブ ユーザーの数を追跡して外部サービスに報告するアプリケーションをシミュレートするように設計されています。
これらのカスタム指標を活用するには、アプリケーションのコードで追加の計測が必要になる場合があります。このラボ演習では、[Increase Users Counter] ボタンと [Decrease Users Counter] ボタンをクリックしてユーザーの接続と切断をシミュレートできます。
また、このウェブツールではユーザーの数を(実際のユーザーが接続したり切断したりするのと同じように)リアルタイムで変更できますが、Cloud Monitoring API で値を送信できるのは 1 分間に 1 回だけです。したがって、その間の変化は Cloud Monitoring のグラフに反映されません。
3 つ目の [Log Test] セクションでは、コンテナの標準出力(コンソール)にさまざまなテキスト文字列を送信できます。送信したテキスト文字列は Cloud Monitoring によって定期的に収集され、Pod とコンテナに関連するログメッセージとして保存されます。デバッグレベルのロギングを有効にして、ログに記録されるエントリを増やすこともできます。これにより、[Custom Metrics] セクションでユーザー数を増やしたり、[Generate CPU Load] セクションで CPU Load Generator を開始 / 停止したりした場合に、ログにメッセージが記録されるようになります。なお、これらのログは、JSON 形式のメッセージに対応していない以前のアプリケーションをシミュレートするために、書式なしテキスト形式で送信されます。これらのログを Logging で表示すると、Pod の JSON ベースの Kubernetes イベントログはこれらの非構造化ログに比べてフィルタやクエリのオプションがはるかに充実していることがわかります。
最後の [Crash the Pod] セクションでは、ボタンをクリックするだけで Pod をクラッシュさせることができます。未処理のエラーを含むコードが実行されて Pod がクラッシュし、Deployment で新しい Pod の再起動がトリガーされます。このツールを使用すると、Kubernetes Engine がいかにすばやくエラーから回復するかを確認できます。また、各 Pod のセッションは中央ではなくそれぞれの Pod で保持されるため、実行中にセッション状態が失われるとどうなるかを確認することもできます。Pod が再起動すると、すべての切り替えボタンと設定がデフォルトの値に戻ります。
次にウェブブラウザを開いて GCP-GKE-Monitor-Test ツールに接続し、CPU Load Generator を開始します。
GCP-GKE-Monitor-Test ツールでプロセスを開始すると、Cloud Monitoring にカスタム指標記述子が作成されます。その後、このツールでカスタム指標データの送信が開始されると、Monitoring でそのデータがその指標記述子に関連付けられます。Monitoring では多くの場合、カスタム指標データを送信すると自動的にカスタム指標記述子が作成されますが、手動で記述子を作成すると、Monitoring のインターフェースに表示されるテキストを自分で指定できるため、Metrics Explorer でデータを見つけやすくなります。
[Increase Users Counter] ボタンと [Decrease Users Counter] ボタンをクリックできるようになります。クリックすると、[STATUS] の下に表示される [Current User Count] の値が変化します。
Monitoring に最初のデータポイントが表示されるまでに 2~3 分かかることがあります。後ほど、このカスタム指標を Cloud Monitoring で確認します。
GCP-GKE-Monitor-Test ツールを使用して、テキストベースのサンプルログを作成します。作成したログは、後ほど Cloud Monitoring で確認します。
このタスクでは、Kubernetes Engine Monitoring を使用して、作成した GKE クラスタとそこで実行されている 2 つのワークロードの現在の状態を確認します。
Google Cloud プロジェクトに関連付けられた Monitoring ワークスペースを設定します。次の手順に沿って、Monitoring を無料でお試しいただける新しいアカウントを作成します。
Google Cloud コンソールのタイトルバーにある [検索] フィールドに「Monitoring」と入力し、検索結果から [Monitoring(インフラストラクチャとアプリケーションの品質チェック)] をクリックします。
[オブザーバビリティ Monitoring] の横にある固定アイコンをクリックします。
ワークスペースがプロビジョニングされるまで待ちます。
Monitoring ダッシュボードが開いたら、ワークスペースの準備は完了です。
Kubernetes Engine Monitoring のインターフェースを開いて 3 種類のセクションを確認します。インフラストラクチャ、ワークロード、Service の 3 つです。
Monitoring のインターフェースの [ダッシュボード] セクションで [GKE] をクリックして、この新しいモニタリング インターフェースを表示します。
このモニタリング インターフェースを確認します。このダッシュボードでは、GKE クラスタとそのワークロードの状態が表示されます。次の点に注目してください。
[クラスタ]、[ノード]、[Pod] の各セクションでは、クラスタの特定の要素の状態を確認できます。クラスタの特定のノードで実行されている Pod を調べることもできます。
クラスタの詳細を表示するには、クラスタ要素をクリックします。
[ワークロード] セクションは、Service が公開されていないワークロードを探す場合などにとても便利です。
[Kubernetes サービス] セクションでは、環境で構成されている Service がクラスタと Namespace(クラスタ内の管理上の区分)で整理されており、特定の Namespace で利用可能な各種の Service を確認できます。Service の名前をクリックすると、その Service の詳細が表示されます。
[Namespace] セクションには、クラスタ内の Namespace のリストが表示されます。
このモニタリング インターフェースでは、Deployment と Pod の詳細をさらに表示することもできます。
すべて表示
] をクリック)して、[指標] タブをクリックすると、より多くの指標が表示されます。この Pod の CPU リクエスト使用率の値に注目してください。Pod が消費している CPU リソースの量が、当初クラスタにリクエストした量に対する比率として表示されます。
画面右上の [X] をクリックして、[ポッドの詳細] ウィンドウを閉じます。
名前が gcp-gke-monitor-test で始まる Pod をクリックして詳細を表示します。
Pod ではなく Namespace を選択した場合は、少し異なる情報が表示されます。
[指標] タブをクリックすると、[CPU リクエストの使用率] や [CPU 使用時間] など、より多くの指標が表示されます。
[ポッドの詳細] ウィンドウで [ログ] タブをクリックして、この Pod のログ アクティビティを表示します。
ここには、Pod が生成したログメッセージと、Pod のロギング アクティビティの推移を示すグラフが表示されます。ツールで生成したサンプルログの一部がここに表示されます。
Monitoring では、カスタム ダッシュボードを作成して、CPU 使用率、コンテナの再起動などの重要な指標や、先ほど作成した接続ユーザー数のカスタム指標などのその他の指標を表示できます。
[オブザーバビリティ Monitoring] ページの左側にあるナビゲーション バーで [Metrics Explorer] をクリックして、ダッシュボードの作成を開始します。
[指標を選択] をクリックします。
リストがフィルタリングされて、新しい Kubernetes Engine Monitoring ツールでサポートされるリソースタイプが表示されます。
[Kubernetes Container] > [使用頻度の高い指標] > [CPU リクエストの使用率] を選択します。
[適用] をクリックします。
これは、fluentbit-gke-xxxx Pod を調べたときに見たのと同じ CPU リクエスト使用率のグラフですが、今度はすべての Pod の指標がグラフに表示されます。
画面の右上にある [グラフの保存] ボタンをクリックします。
グラフのタイトルに「コンテナ CPU のリクエスト」などの名前を付けて、[ダッシュボード] をクリックします。
グラフ名は一意でなければなりません。次のステップでダッシュボード全体に名前を付けることができます。
[New Dashboard] をクリックします。
ダッシュボードに「Container Dashboard」という名前を付けます。
[グラフを保存] をクリックします。
これで、このダッシュボードをナビゲーション パネルの [ダッシュボード] から選択して起動できるようになりました。
これで、標準的な Monitoring 指標を含む 1 つのグラフを表示するダッシュボードができました。次に、先ほど作成した Monitoring カスタム指標のグラフを作成してこのダッシュボードに追加します。
[Metrics Explorer] をクリックします。
[指標を選択] をクリックします。
[Kubernetes Pod] > [カスタム指標] > [ウェブアプリ - アクティブ ユーザー] を選択します。
[適用] をクリックします。
[Save Chart] をクリックします。
新しいグラフに「Active Users」などの名前を付けます。
ダッシュボードのプルダウンから [Container Dashboard] を選択します。
[グラフを保存] をクリックします。
[Container Dashboard] に戻り、歯車アイコンをクリックして設定メニューを表示します。
次に、[凡例] > [テーブル] をクリックして、各グラフの下にテキストを表示します。
各グラフの右側の [Value] の横にある 3 本の縦棒をクリックします。
アプリケーション サーバーから送信された timeSeries データに含まれていたさまざまなラベルがポップアップに表示されます。この情報を使用して、グラフのデータをフィルタしたり集計したりできます。
このタスクでは、Kubernetes Engine Monitoring でアラートを構成した後、ダッシュボードを使ってインシデントを見つけてそれに対応します。
CPU 使用率の高いコンテナを検出するアラート ポリシーを作成します。
[Notification Channels] の横にあるプルダウン矢印をクリックし、[通知チャンネルを管理] をクリックすると [通知チャンネル] ページが新しいタブで開きます。
ページを下方向にスクロールし、[Email] の [ADD NEW] をクリックします。
個人メールアドレスを [Email Address] に入力し、表示名を [Display Name] に入力します。
[SAVE] をクリックします。
[通知ポリシーの作成] タブに戻ります。
[Notification Channels] をもう一度クリックし、更新アイコンをクリックして、前の手順で入力した表示名が表示されている状態にします。必要に応じて、[通知チャンネル] をもう一度クリックします。
使用する表示名を選択し、[OK] をクリックします。
アラートに「CPU request utilization
」という名前を付けます。
[次へ] をクリックします。
アラートを確認して [ポリシーを作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Monitoring のダッシュボードに戻ります。コンテナの 1 つでインシデントが報告されています。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください