Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Datadog で GKE とマネージドサービスを 効率的に運用する方法

Datadog で GKE とマネージドサービスを 効率的に運用する方法

Kento Kimura

November 16, 2023
Tweet

More Decks by Kento Kimura

Other Decks in Technology

Transcript

  1. 16th Nov, Google Cloud Next Tokyo ’23, Sponsored Session Kento

    Kimura Datadog で GKE とマネージドサービスを 効率的に運用する方法 GENERAL USE
  2. アプリケーション 監視 アプリケーションとそ プロセス 状態を可視化し、エラーやパフォーマンス 情報を元にアプリ ケーションコード デバッグを行う。 ゴールデンシグナルなどに基づく、アプリケーション 指標を把握する。

    Kubernetes 監視 10 監視、ログ、デバッグ コンテナ 監視 Kubernetes リソース 一般的な問題やコンテナ終了メッセージ 管理、実行中 コンテナ デ バッグを行う。 Pod・Service・StatefulSet などとコンテナ自体 状態を把握する。 ホスト 監視 アプリケーションが原因でない場合 、コントロールプレーン・ワーカーノードなど Cluster 状態 確認、各ワークロード 状態を深く掘り下げるログ 確認を行う。 ノード 死活監視と kube-apiserver・kube-scheduler・kubelet 状態を把握する。
  3. 12 Autopilot モード ワーカーノード 管理を Google Cloud に委任できる。 ノード 自動スケールや作成/削除

    ・OS 管理を行う必要がないが、アク セスができない。 Cloud Run(参考) ノードを意識することなく、アプリケー ションコンテナをデプロイしホスティン グできる。 サイドカー機能によりマルチコンテナ 起動も可能。 Standard モード ノード配置やレプリカ 選択肢として シングル・マルチゾーンやリージョンク ラスターがある。 基盤となる GCE ノードに直接アクセ スできる。 GKE 概要 Google Cloud マネージド Kubernetes サービス GKE 仕組み Google Compute Engine(GCE) を利用した Node でクラスターを形成する。Standard モード コントロールプレー ンを Google Cloud が管理し、Autopilot モード ワーカーノード 管理も行う GKE 特徴 コントロールプレーンやワーカーノード 管理を委任できるため、コンテナ上 アプリケーションや プロセス 監視に注力できる
  4. GKE アーキテクチャ 13 GKE クラスター コントロールプレーン ストレージ リソース コントローラー スケジューラー

    ワーカーノード ユーザーポッド コンテナ ユーザーポッド コンテナ API サーバー ユーザー kubectl Google Cloud マネージド Autopilot: Google Cloud マネージド Standard: ユーザーマネージド 各モード マネージ範囲 GKE Kubernetes 様々なレイヤー うち、 コントロールプレーン 管理を Google Cloud に 委任できるマネージドサービス さらに、Autopilot モードで ワーカーノード オーケストレーションなども委任できる マネージ範囲と監視方法
  5. GKE アーキテクチャ 14 GKE クラスター コントロールプレーン ストレージ リソース コントローラー スケジューラー

    ワーカーノード ユーザーポッド コンテナ ユーザーポッド コンテナ API サーバー ユーザー kubectl Google Cloud マネージド Autopilot: Google Cloud マネージド Standard: ユーザーマネージド 各モード マネージ範囲 GKE Kubernetes 様々なレイヤー うち、 コントロールプレーン 管理を Google Cloud に 委任できるマネージドサービス さらに、Autopilot モードで ワーカーノード オーケストレーションなども委任できる アンマネージドリソース 監視 Standard/Autopilot モード どちら 場合でも ユーザーポッド上 ユーザーマネージドなため、 プロセスやアプリケーション 監視に 独自 仕組みが必要 マネージ範囲と監視方法
  6. Google Cloud Managed Observability① Kubernetes オブザーバビリティ 1. GKE クラスタを作成すると、デフォルトで Cloud

    Logging と Cloud Monitoring が有効となる 2. Metrics/Logging Agent が各ノードにデプロイされ、システムとワークロード 情報を収集できる • クラスタ 重要な指標 :CPU 使用率、メモリ使用率、対応待ち インシデント数 • クラスタリソース 情報 :インフラストラクチャ、ワークロード、サービス • コンテナリソース 情報 :Namespace、ノード、ワークロード、 Service、Pod • Pod とコンテナ ログ情報 :時間 関数として指標を表示し、ログエントリを確認 3. Cloud Monitoring で デフォルトで様々な GKE ダッシュボードを提供している • GKE Compute Resources :クラスター・ノード・ワークロード毎にリソース 利用状況を可視化 • GKE Interactive Playbook :Crashlooping/Unschedulable Pods に対するプレイブックを現在 状況と合わせて確認できる • GKE Workloads at Risk :ワークロード CPU/Memory Request 未設定やリソース不足を可視化できる Observability for GKE で利用されるテクノロジー: 15 Observability(Cloud Operations) for GKE
  7. Google Cloud Managed Observability② eBPF を利用した Kubernetes データプレーン 1. Kubernetes

    ネットワーク用に最適化された GKE クラスタ用データプレーン 2. eBPF(Cilium) を使用して実装することでパケット内に Kubernetes 固有 メタデータを使用し、 より効率的なパケット ルーティング・処理を行う 3. 従来 Observability for GKE に加えて、Hubble による Pod ネットワークテレメトリを収集する Dataplane V2 Observability で利用されるテクノロジー: 4. さらに、アプリケーション パフォーマンスを可視化したい場合 別 実装が必要 アプリケーションパフォーマンス 可視化: 16 GKE Dataplane V2 Observability(Preview)
  8. Datadog Agent for GKE 17 1つ エージェントで マルチクラウド 対応 Datadog

    Agent ど クラウド 上 マネージド Kubernetes サービスであっても、同一 Agent を同一 方法でデプロイ できる。 さらに、収集されたデータを Datadog プラットフォーム上でま とめて可視化できる。 様々なテレメトリデータ 紐付け・相関性 Agent によって取得された、メト リクス・ログ・トレースなど 複数 テレメトリを、Datadog プラット フォーム上で紐づけて表示でき る。 プロセスとアプリケーション 可視性 GKE ノードで稼働している プロ セス単位で 可視性と、コンテナ 上で稼働している アプリケー ション 可視性を単一 Agent で実現できる。 さらに、ネットワーク情報・メトリク ス・ログ 収集を 同一 Agent が担う。 Datadog Agent ができること
  9. Google Cloud 責任・運命共有モデル 責任共有モデルで PaaS • Google Cloud 上で定義される Platform

    as a Service 、 アプリケーションを開発して実行できるランタイム環境 • そ ため、アプリ コード・デプロイ・セキュリティ 責任 常に顧客(利用者) 責任範囲となる 運命共有モデル Google Cloud 運命共有モデル 、セキュリティ 向上を目指し ビジネス 安全性と信頼 構築に役立つモデルに進化したも 19 責任共有モデルから運命共有モデルへ
  10. Google Cloud マネージドサービス マネージドサービスと • 前述 GKE や Cloud Run

    を含む、マシン セットアップが不要で管理・パッチ適用・バックアップなどが自動 的に処理されるサービス • 責任共有モデルで PaaS・SaaS を含む マネージドサービス 監視 Google Cloud がマネージ(管理)する範囲:Google Cloud がメトリクス・ログを提供する 顧客(利用者)がマネージ(管理)する範囲:利用者が監視テレメトリを収集する 20 マネージドサービス 定義
  11. Google Cloud マネージドサービス 21 Eventarc 状態変更をトリガーとするアクションを 様々に設定し、イベントドリブンアーキテク チャを構築できる フルマネージドソリューション Cloud

    Spanner 高可用性と柔軟なスケーリング、強力な整 合性が特徴 フルマネージドな リレーショナルデータベース Cloud Bigtable ミリ秒単位 レイテンシ、無制限 拡張 性、99.999% 可用性を特長とする HBase 対応 エンタープライズ向け フルマネージド NoSQL DB BigQuery サーバレスで費用対効果に優れた、デー タ 管理と分析を支援する フルマネージド DWH マネージドサービス 具体例
  12. Google Kubernetes Engine コントロールプレーン:Google Cloud Cloud Monitoring / Logging で

    メトリクス・ログ監視 ユーザーポッド :監視エージェント 実装と監視情報 収集 そ 他 マネージドサービス: Cloud Monitoring / Logging で メトリクス・ログ監視 マネージドサービス 監視 マネージドサービス 監視 提供されているメトリクス・ログと、 利用者 責任範囲 リソース監視を分けて考える必要がある 22
  13. Google Cloud 監視に Datadog Datadog で監視する理由 • Kubernetes 監視対象となるコンポーネントが複数ある •

    マネージドプラットフォーム全般も責任範囲で監視方法が変わる • プラットフォーム上 リソース ユーザーが管理・監視しなけれ ならない Datadog どちら 監視情報も同様に可視化して運用できる統合監視プラットフォーム Datadog で監視するメリット • Datadog Google Cloud と相互に連携する機能を持つ • Datadog によってアプリケーションからインフラストラクチャー 監視を一元化できる • Datadog 上に収集された情報 、メトリクス・ログ・トレースなどを中心に簡単に連携を行える 23
  14. Google Cloud Integration: How-to メトリクス 送信 1.   Datadog クローラー用

    Service Account を作成する 2.   Service Account 用 Datadog プリンシパルを発行する 3.   Service Account 権限にDatadog プリンシパルを追加する 4.   Service Account を Datadog に登録する ログ 送信 1.   Cloud Pub/Sub を作成する 2.   API Key を作成する 3.   Subscriptions に Datadog エンドポイントを追加する 4.   対象 ログ Log Router を Pub/Sub に設定する 25 Google Cloud to Datadog
  15. Google Cloud Integration: Architecture 26 Google Cloud to Datadog Project

    Monitoring Logging Pub/Sub Datadog Crawler / API Datadog Organization (US5) Cloud Monitoring API Service Account
  16. GKE Integration: How-to #Helm リポジトリに Datadog リポジトリ を追加し、更新 helm repo

    add datadog https://helm.datadoghq.com helm repo update #GKE に Datadog Agent, Datadog Cluster Agent のデプロイ(values.yaml を使用しない場合) helm install <RELEASE_NAME> \ --set datadog.apiKey=<DATADOG_API_KEY> \ --set datadog.appKey=<DATADOG_APP_KEY> \ --set clusterAgent.enabled=true \ --set clusterAgent.metricsProvider.enabled=true \ --set datadog.logs.enabled=true \ --set datadog.apm.enabled=true \ datadog/datadog 27 Helm で Datadog Agent, Datadog Cluster Agent インストール
  17. Datadog Integration Eventarc にイベントをサブスクライブする 1.   Eventarc で プロバイダ名を取得する(datadog/us-central1) 2.

      Eventarc イベントを取得する(datadog.v1.alert) 3.   Datadog イベント用 チャネルを作成する 4.   「チャネル 完全名」と「アクティベーショントークン」を取得する 5.   Eventarc Integration ページから上記2点を入力する 6.   Eventarc トリガーを作成する 7.   Datadog Monitor でアラートを作成し、宛先に Eventarc を指定する 30 Datadog to Google Cloud
  18. Datadog Integration 31 Datadog to Google Cloud Datadog API Datadog

    Organization (US5) Eventarc トランスポートレイヤー Project Cloud Functions Cloud Run Google Kubernetes Engine
  19. 33 デモ① Google Cloud Integration for Cloud Monitoring • 数回

    ステップで簡単に連携 • Datadog が自動的にデータを収集 • Google Cloud 監視情報を可視化
  20. 35 デモ③ Datadog Cloud SIEM for Google Cloud • Cloud

    Audit Logs 脅威を分析 • セキュリティイベント 追跡 • IAM 権限情報 可視化 • スキャンログ 15ヶ月間 保持
  21. Google Cloud 監視に Datadog Datadog で監視する理由 • Kubernetes 監視対象となるコンポーネントが複数ある •

    マネージドプラットフォーム全般も責任範囲で監視方法が変わる • プラットフォーム上 リソース ユーザーが管理・監視しなけれ ならない Datadog どちら 監視情報も同様に可視化して運用できる統合監視プラットフォーム Datadog で監視するメリット • Datadog Google Cloud と相互に連携する機能を持つ • Datadog によってアプリケーションからインフラストラクチャー 監視を一元化できる • Datadog 上に収集された情報 、メトリクス・ログ・トレースなどを中心に簡単に連携を行える 37
  22. and 事例ウェビナー DatadogでGKEとマネージドサービスを効率的に運用する方法 日程:2023年11月28日(火) 時間:17:00 - 18:00 参加方法:Zoom 本ウェビナーで Google

    Cloud Next ’23 でお話ししたセッション内容に加えて、 PLAID 様 CX プラットフォーム 「KARTE」事 例を元に Datadog を利用する上で 実際 運用 ポイントについてもご紹介いたします。 38