Azure Kubernetes Service (AKS) でのトラブルシューティングに Kubernetes イベントを使用する
この記事では、Kubernetes イベントを使用して、Azure Kubernetes Service (AKS) クラスターの問題を監視およびトラブルシューティングする方法について説明します。
Kubernetes イベントとは
イベントは、Kubernetes の問題を監視してトラブルシューティングするための最も重要なソースの 1 つです。 それらでは、ポッド、ノード、サービス、デプロイなど、さまざまな Kubernetes オブジェクトのライフサイクルに関する情報がキャプチャされて記録されます。 イベントを監視することで、クラスターのアクティビティを把握し、問題を特定して、問題を効果的にトラブルシューティングできます。
Kubernetes イベントは、保持メカニズムがないため、クラスターのライフサイクル全体にわたって保持されません。 イベントは生成後 1 時間しか使用できません。 さらに長い期間イベントを格納するには、コンテナーの分析情報を有効にします。
Kubernetes イベント オブジェクト
次の表に、いくつかの主要な Kubernetes イベント オブジェクトを示します。
フィールド名 | 説明 |
---|---|
type | この種類は、イベントの重大度に基づいています。 警告イベントは、ポッドが繰り返し失敗したり、ノードがリソースを使い切ったりするなど、潜在的に問題のある状況を通知します。 注意が必要ですが、すぐに失敗することはないかもしれません。 通常イベントは、ポッドのスケジュール設定やデプロイのスケールアップなど、通常の操作を表します。 通常、正常なクラスターの動作を示します。 |
reason | イベントが生成された理由。 たとえば、FailedScheduling や CrashLoopBackoff などです。 |
メッセージ | 人が判読できる、イベントについての説明メッセージ。 |
namespace | イベントが関連付けられている Kubernetes オブジェクトの名前空間。 |
firstSeen | イベントが初めて観察されたときのタイムスタンプ。 |
lastSeen | イベントが最後に観察されたときのタイムスタンプ。 |
reportingController | イベントを報告したコントローラーの名前。 たとえば、kubernetes.io/kubelet のようにします。 |
オブジェクト | イベントが関連付けられている Kubernetes オブジェクトの名前。 |
詳細については、公式の Kubernetes のドキュメントを参照してください。
Kubernetes イベントを表示する
kubectl get events
コマンドを使用して、クラスター内のすべてのイベントを一覧表示します。kubectl get events
最初にポッドの名前を見つけ、次に
kubectl describe pod
コマンドを使用して、特定のポッドのイベントを確認します。kubectl get pods kubectl describe pod <pod-name>
イベントを使用したトラブルシューティングのベスト プラクティス
関連性に関するイベントのフィルター処理
AKS クラスターでは、さまざまな名前空間とサービスが実行されている場合があります。 オブジェクトの種類、名前空間、または理由に基づいてイベントをフィルター処理すると、結果を最も関連性の高い情報に絞り込むことができます。
たとえば、次のコマンドを使うと、特定の名前空間内のイベントにフィルター処理できます。
kubectl get events --namespace <namespace-name>
イベント通知の自動化
AKS クラスターでのクリティカルなイベントにタイムリーに応答できるようにするには、自動通知を設定します。 Azure では、Azure Monitor などの監視およびアラート サービスと統合できます。 特定のイベント パターンに基づいてトリガーするようにアラートを構成できます。 これにより、注意が必要な重要な問題についてすぐに通知されます。
イベントの定期的な確認
AKS クラスター内のイベントを定期的に確認する習慣を付けます。 このプロアクティブなアプローチは、傾向を明らかにし、潜在的な問題を早期に把握し、エスカレートするのを防ぐのに役立ちます。 イベントをうまく利用することで、アプリケーションの安定性とパフォーマンスを維持できます。
次のステップ
Kubernetes のイベントを理解したので、コンテナーの分析情報を有効にすることで、監視の取り組みを続けることができます。
Azure Kubernetes Service