Kubernetesソリューション

Oracle Logging AnalyticsのKubernetesモニタリング・ソリューションを使用して、OCI、サード・パーティのパブリック・クラウド、プライベート・クラウド、または管理対象Kubernetesデプロイメントを含むオンプレミスにデプロイされたKubernetesに関するインサイトを監視および生成します。

メトリック、オブジェクト情報の形式のKubernetes状態、Kubernetes環境の様々なログなどのテレメトリ・データが分析のために収集されます。

ノート

Kubernetesのログ・アナリティクス・ソリューションは、Kubernetesの公式バージョンが1.22を超えると、OKEやEKSなどの対応するクラウド・フレーバをサポートしています。

Kubernetesソリューションのすべての操作を実行するために必要な権限は、すべてのKubernetesソリューション操作の許可を参照してください。

次のタイプのログがKubernetes環境から収集されます:

タイプ コンポーネント: ログ・ソース・マッピング メタデータ・エンリッチメント

Kubernetesコンポーネント/システム・ログ

Kubeプロキシ: Kubernetesプロキシ・ログ

Kube Flannel: Kubernetes Flannelログ

Kube DNS Autoscaler: Kubernetes DNS Autoscalerログ

コアDNS: KubernetesコアDNSログ

CSIノード・ドライバ: Kubernetes CSIノード・ドライバ・ログ

Proxymux: OKE Proxymuxクライアント・ログ

Autoscaler: Kubernetes Autoscalerログ

Kubelet: Kubernetes Kubeletログ

Kubernetesクラスタ名

KubernetesクラスタID

ノード

ネームスペース

ポッド

コンテナ

コンテナ・イメージ名

OSログ

Syslogログ: Linux Syslogログ

Cronログ: Linux Cronログ

セキュア・ログ: Linuxセキュア・ログ

メール・ログ: Linuxメール配信ログ

監査ログ: Linux監査ログ

Ksplice/Uptrackログ: Kspliceログ

YUMログ: Linux YUMログ

Kubernetesクラスタ名

KubernetesクラスタID

ノード

Kubernetesポッド/コンテナ・ログ

Kubernetesコンテナ汎用ログ

Kubernetesクラスタ名

KubernetesクラスタID

ノード

ネームスペース

ポッド

コンテナ

コンテナ・イメージ名

次のオブジェクト情報は、Kubernetes環境から収集されます:

Object ログ・ソース メタデータ・エンリッチメント
ノード Kubernetesノード・オブジェクト・ログ

Kubernetesクラスタ名

KubernetesクラスタID

ポッド Kubernetesポッド・オブジェクト・ログ

Kubernetesクラスタ名

KubernetesクラスタID

デプロイメント(ワークロード) Kubernetesデプロイメント・オブジェクト・ログ

Kubernetesクラスタ名

KubernetesクラスタID

DaemonSet (ワークロード) Kubernetes DaemonSetオブジェクト・ログ

Kubernetesクラスタ名

KubernetesクラスタID

StatefulSet (ワークロード) Kubernetes StatefulSetオブジェクト・ログ

Kubernetesクラスタ名

KubernetesクラスタID

ジョブ(ワークロード) Kubernetesジョブ・オブジェクト・ログ

Kubernetesクラスタ名

KubernetesクラスタID

CronJob (ワークロード) Kubernetes CronJobオブジェクト・ログ

Kubernetesクラスタ名

KubernetesクラスタID

Logging AnalyticsによるKubernetesクラスタの接続

テナンシ内のKubernetesクラスタに関する必要な情報を収集し、クラスタを接続するために必要な権限があることを確認します。Oracleでは、管理者権限を持つユーザーがこの操作を実行することをお薦めします。接続に成功すると、関連するKubernetesコンポーネントおよびコンピュート・ノードのログ、メトリックおよびオブジェクト情報が、このクラスタから収集されます。

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「ソリューション」をクリックし、「Kubernetes」をクリックします。「Kubernetesモニタリング・ソリューション」ページが開きます。

  2. 「Kubernetesモニタリング・ソリューション」ページで、「クラスタの接続」をクリックします。データの追加ウィザードが開きます。ここで、「Kubernetesのモニター」セクションはすでに拡張されています。「Oracle OKE」をクリックします。「OKE環境モニタリングの構成」ページが開きます。

  3. クラスタの表の対応する行をクリックして、Oracle Logging Analyticsに接続するOKEクラスタを選択します。表の詳細を使用して、適切なOKEクラスタを識別します。「次」をクリックします。

  4. メニューから、テレメトリ・データと関連するモニタリング・リソースを格納するコンパートメントを選択します。

  5. オプションで、必要なポリシーおよび動的グループが作成されます。このチェック・ボックスは、すでに作成している場合は無効にできます。必要なポリシーについては、すべてのKubernetesソリューション操作の許可を参照してください。

  6. オプションで、使用状況メトリックのコレクション用にメトリック・サーバーがインストールされます。このチェックボックスは、すでにインストールしている場合は無効にできます。

  7. 「ソリューション・デプロイメント・オプション」を選択します:

    • 前述のクラスタを自動的に有効化: Oracle Logging Analyticsで必要なすべてのリソースを自動的に作成できるようにするには、このオプションを選択します。

      自動ログ収集構成では、次のリソースが作成または更新されます。

      • IAMポリシーおよび動的グループ
      • Oracle Logging Analyticsのログ・グループおよびエンティティ
      • 管理エージェント・キー
      • メトリック・ネームスペース
      • 管理エージェント構成
      • Fluentd構成
      • Kubernetesマニフェストおよびhelmチャート
    • 前述のクラスタを手動でデプロイします: Oracle Logging AnalyticsがすべてのOracle Cloud Infrastructureリソースを作成し、Helm/Kubernetesマニフェストを介してFluentdおよびその他の構成のデプロイメントをクラスタに管理できるようにするには、このオプションを選択します。ただし、インストール手順は接続ワークフローの最後に提供されます。このオプションを使用すると、自動デプロイメントで使用されるデフォルト構成およびその他のコレクション・パラメータをカスタマイズできます。
  8. 「ログ収集の構成」をクリックして、指定した構成を確認します。

    Oracle Cloud Infrastructureリソースが作成されました。

  9. ソリューションの手動デプロイメント・オプションを選択した場合は、Helmチャート・デプロイメントの接続ワークフローの最後にあるインストール手順に従います。

これにより、Kubernetesクラスタからデータを収集するための構成が完了します。Kubernetesモニタリング・ソリューション・ページに移動し、データ収集が完了するまで数分待ちます。データ収集が進行中の場合、クラスタの最新のテレメトリUnknownです。このステータス変更後にソリューションを表示できます。

Kubernetesクラスタのモニター

Kubernetesクラスタから収集されたテレメトリ・データは、環境とそのパフォーマンスに関するインサイトを取得するのに役立つ複数のビューで表示されます。

Kubernetesクラスタのソリューションを表示するには:

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「ソリューション」をクリックし、「Kubernetes」をクリックします。「Kubernetesモニタリング・ソリューション」ページが開きます。

  2. 「Kubernetesモニタリング・ソリューション」ページで、モニターおよび分析するクラスタの名前をクリックします。選択したクラスタのソリューションがデフォルトの「クラスタ」ビューで開きます。

次に、トポロジの層を横断するために使用できるソリューションおよび様々なビューを確認し、「クラスタ・ビュー」「ワークロード・ビュー」「ノード・ビュー」および「ポッド・ビュー」の各レベルで詳細を取得します。フィルタ・コンテキストは、異なるビュー間で維持されます。

クラスタ・ビュー

Kubernetesソリューション・クラスタ・ビューの例:


クラスタ・ビュー

クラスタ・ビューには次のセクションが表示されます。

  • 時間セレクタ(イメージの2つ): Last 60 Minutes (デフォルト)とLast 24 Hoursの2つの時間範囲オプションがあります。時間範囲に加えた変更は、「イベント」および「右パネル・ウィジェット」に影響します。

  • フィルタ(イメージ内の1):

    • 名前空間フィルタ: Kubernetesネームスペースでビューをフィルタします。
  • トポロジ(イメージの3): このセクションには、Kubernetes環境から収集されたオブジェクト・データが表示されます。ネームスペースを右クリックし、フィルタに追加します。次に、トポロジ・ビューが変更され、ワークロードおよびノードを含むネームスペース内のオブジェクトが反映されます。トポロジは現在の時間に基づいており、時間範囲設定の影響を受けません。

    トポロジ内の各オブジェクトの色は、そのオブジェクトまたはその子に関連付けられたアクティブな警告イベントから導出されたステータスを示します。たとえば、1つ以上の警告イベントがあるポッドの場合、ポッドの色コードはREDに変更され、対応するワークロード(ポッドを所有)も同じステータスで反映されます。

  • ネームスペース別のポッド(イメージ内の5): トポロジで使用可能なポッド。各ポッドの色の詳細は、上の段落を参照してください。
  • 左パネルのサマリー(イメージの4): 左パネルのサマリーは現在の時間に基づいており、時間範囲設定の影響を受けません。
  • イベント(イメージの7): このセクションには、Kubernetesクラスタで発生した状態の変更がイベントの形式で表示されます。「警告のみ」または「すべて」でイベントをさらにフィルタできます。

    「イベント」セクションを展開すると、ページの中央に表を表示できます。

  • 右パネル・ウィジェット(イメージの6): これらのウィジェットは、システムの状態を監視するのに役立ちます。The type of widgets available upon using the rotating scroll bar are CPU core (used/allocatable) in %, CPU core used, Memory (used/allocatable) in %, Memory used, Kubernetes system, OS health, Total API server requests, API server request duration, API response size, API request execution duration, etcd request duration, Network: bytes rx, Network: byts tx, Network Packet Rx Rate, Network: Packet Tx Rate, Network: Packet Rx Dropped Rate, and Network: Packet Tx Dropped Rate.

各セクションを展開してより大きなビジュアライゼーションを表示し、マウス・オーバーして詳細を表示できます。

ワークロード・ビュー

Kubernetesソリューションのワークロード・ビューの例:


kubernetesワークロード・ビュー

「時間セレクタ」「イベント」「左パネルのサマリー」および「右パネルのウィジェット」の項は、クラスタ・ビューと同じです。ネームスペース・フィルタ・コンテキストはクラスタ・ビューから保持され、ワークロードの追加フィルタもこのビューで使用できます。「ワークロード別ポッド」セクションには、ポッドが属するワークロード別にグループ化されたビューが表示されます。また、ビューにはワークロードの詳細が含まれています。この項では、各タイプのワークロードを展開して、ネームスペース、ワークロード名、ステータスおよび経過時間の詳細情報を表示できます。

ノード・ビュー

Kubernetesソリューション・ノード・ビューの例:


Kubernetesソリューション・ノード・ビュー

「時間セレクタ」「イベント」「左パネルのサマリー」および「右パネルのウィジェット」の項は、クラスタ・ビューと同じです。「ネームスペース・フィルタ」および「ワークロード・フィルタ」コンテキストは「ワークロード」ビューから保持され、ノードの追加フィルタもこのビューで使用できます。「ノード別ポッド」セクションには、ポッドのビューが、それらが属するノード別にグループ化されて表示されます。また、ビューには「ノード・ステータス」が含まれます。この項では、各ノードを展開して、ステータス、問題、経過時間、OS、コンテナ・ランタイム、kubelet/kubeproxyバージョン、CPU、メモリー(容量)、メモリー(割当て可能)などの詳細情報を表示できます。また、問題があるノードまたは準備ができていないノードのみのステータスを選択的に表示することもできます。

ポッド・ビュー

Kubernetesソリューション・ポッド・ビューの例:


Kubernetesソリューション・ポッド・ビュー

「時間セレクタ」「イベント」「左パネルのサマリー」および「右パネルのウィジェット」の項は、クラスタ・ビューと同じです。「ネームスペース・フィルタ」、「ワークロード・フィルタ」および「ノード・フィルタ」コンテキストは、「ノード」ビューから保持されます。「ポッド」セクションには、フィルタの選択に基づいてポッドとそのステータスが表示されます。また、このビューにはポッド・ステータスが含まれています。このセクションでは、各ポッドを展開して、ステータス、ノード、ネームスペース、ポッドIP、コントローラ、コントローラの種類、スケジューラなどの詳細情報を表示できます。また、実行中、失敗、成功、保留中など、現在のステータスに基づいてポッドの詳細を選択的に表示することもできます。

すべてのKubernetesソリューション運用を許可

動的グループを作成して、ログ、メトリックおよびオブジェクト情報の収集を許可します。

ALL {instance.compartment.id = '<OKE_COMPARTMENT_OCID>'}
ALL {resource.type='managementagent', resource.compartment.id='<TELEMETRY_COMPARTMENT_OCID>'}

動的グループがデータ収集操作を実行できるようにするポリシーを作成します。

allow dynamic-group <dynamic_group_name> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment id <TELEMETRY_COMPARTMENT_OCID>
allow dynamic-group <dynamic_group_name> to use METRICS in compartment id <TELEMETRY_COMPARTMENT_OCID> WHERE target.metrics.namespace = 'mgmtagent_kubernetes_metrics'
allow dynamic-group <dynamic_group_name> to {LOG_ANALYTICS_DISCOVERY_UPLOAD} in tenancy

動的グループおよびIAMポリシーの詳細は、OCIドキュメント: 動的グループの管理およびOCIドキュメント: ポリシーの管理を参照してください。