EKSのPodのパフォーマンスと正常性を監視する

Amazon EKS

前回の記事では、CloudWatch Observability EKS add-on を使って EKS クラスタで稼働する Pod のメトリクスを CloudWatch に送信する方法を紹介しました。

Amazon EKS
CloudWatch Observability EKS add-onでEKSのメトリクスとログ収集

CloudWatch Observability EKS add-on を試してみたので備忘録。これまで EKS のメト ...

この add-on を利用すると EKS の Pod に関する多くのメトリクスが収集できます。今回は、収集したメトリクスのうち、私がよく見る Pod のパフォーマンスの劣化や正常性の確認に役立つメトリクスを紹介します。

目次

  1. パフォーマンスの劣化の兆候を検知するために役立つメトリクス
  2. Pod の正常性の確認に役立つメトリクス

パフォーマンスの劣化の兆候を検知するために役立つメトリクス

CPU とメモリの使用率により、基本的なメトリクスですが、パフォーマンスの劣化の兆候を検知することができます。詳細は Amazon EKS and Kubernetes Container Insights metrics - Amazon CloudWatch を参照。

pod_cpu_utilization

Pod で使用されている CPU ユニットの割合です。
計算式は pod_cpu_usage_total / node_cpu_limitで、ノードの CPU リミットが分母であることに注意。
このメトリクスにより、リソースの不足や過剰な利用を確認できます。

pod_cpu_utilization_over_pod_limit

Pod で使用されている CPU ユニットの使用率が Pod の CPU リミットに対してどの程度かを示す割合です。
計算式は pod_cpu_usage_total / pod_cpu_limitで、Pod の CPU リミットが分母であることに注意。
このメトリクスにより、Pod が CPU リソースの上限に対してどの程度利用されているか、リソースが適切に割り当てられているかどうかを確認できます。

Pod の定義で CPU リミットを設定していない場合、このメトリクスは収集されないようです。

pod_memory_utilization

Pod が現在使用しているメモリの割合です。
計算式は pod_memory_working_set / node_memory_limitで、ノードのメモリリミットが分母であることに注意。
このメトリクスにより、リソースの不足や過剰な利用を確認できます。

pod_memory_utilization_over_pod_limit

Pod が使用しているメモリ使用率が Pod のメモリリミットに対してどの程度かを示す割合です。
計算式は pod_memory_working_set / pod_memory_limitで、Pod のメモリリミットが分母であることに注意。
このメトリクスにより、Pod のメモリの上限に対してどの程度利用されているか、さらにリソースが適切に割り当てられているかどうかを確認できます。

Pod の定義でメモリリミットを設定していない場合、このメトリクスは収集されないようです。

Pod の正常性の確認に役立つメトリクス

何かおかしな兆候を検知したら、ステータス系のメトリクスをよく見ます。詳細は Amazon EKS and Kubernetes Container Insights metrics - Amazon CloudWatch を参照。

pod_status_ready

Pod のすべてのコンテナが準備完了状態(ContainerReady)にあることを示します。
サービスが正常に機能しているかどうかを確認できます。

pod_status_running

Pod のすべてのコンテナが実行状態にあることを示します。
Pod の正常稼働状況を確認できます。

pod_number_of_container_restarts

Pod 内のコンテナの再起動回数の合計です。
再起動の多さは問題が発生している可能性を示します。

-技術ブログ
-