はじめに
「RKSを知る!」の連載第18回目の記事としまして、各クラウドベンダが扱っているマネージドkubernetesサービスでのログ管理方法を記載していきます。
AzureやAWSでのKubernetesサービスのログ管理方法と比較して、RKSではどのようなログ管理が可能なのかを各ベンダのログ管理方法を紹介していきながら比較していければと考えております。
本連載についてはリンクページを用意していますため、概要や連載記事は下記URLからご確認ください。
RKSを知る! 概要&連載リンク
AKSのログ管理方法
AzureでAKSのログ管理する方法として、Container insightsサービスを用いた確認が主流となります。
Container insightsではAKSに関する以下のログを確認することができます。
・AKSクラスター内のノードで実行されているコンテナのプロセッサおよびメモリ平均使用率
・ノードで実行されているワークロードのリソース使用率
・クラスターの平均的な負荷、および最大の負荷の確認
・ノードまたはコンテナーのCPU およびメモリの使用率
Container insightsは監視機能も含まれるAzure Monitorからのアクセス、または選択した AKS クラスターからの直接アクセスという 2 つの方法でアクセスできます。
また、Prometheusノードと Kubernetes から収集したアプリケーションとワークロードのメトリックを表示し、カスタム アラート、ダッシュボード、分析を作成し管理することも可能です。
EKSのログ管理方法
EKSのログはCloudwatchに集約されます。
ログ収集を有効化することにより、以下のログを収集、確認することができます。
・Kubernetes API サーバーコンポーネントログ
・Kubernetes 監査ログ
・Amazon EKS 認証情報ログ
・Kubernetes コントローラーマネージャーログ
・Kubernetes スケジューラログ
Cloudwatchによるログ収集を有効化することによりCloudwatchの課金も始まってしまうため、料金面での注視が必要となります。
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/control-plane-logs.htm
EKSクラスタ上で稼働するPod内のコンテナのログを収集する場合は、Cloudwatchの機能であるCloudWatch Container Insightsの設定が必要となります。
CloudWatch Container Insightsを設定することにより、EKSクラスタ上のPodのメトリクス情報や標準ログ、標準エラーログなどをCloudwatch上に収集することができ、クラスタと合わせてCloudwatch上でのログの一元管理が可能となります。
EKSにてCloudWatch Container Insightsを設定する場合、CloudwatchエージェントとFluentdのPodの導入を行う必要があります。
RKSのログ管理方法
RKSのログ管理方法ですが、現状マネージドなログ管理機能はないため、ログ管理アプリケーションをRKSにデプロイ、カスタマイズして管理する必要があります。
Ridgeは今後のアップデートでマネージドなログ管理サービスの提供を予定しているため、RKS環境にログ管理リソースをデプロイする必要がなくなる日は近いかもしれません。
最後に
今回はRKSと合わせてAKS、EKSのログ管理方法について調査してみました。
AKS、EKSは独自のログ管理サービスが存在しているため、ログ管理を容易に行うことができますが、RKSはログ管理のサービスを提供していないため、別途設計からログ管理を実施する必要があるという結果になりました。
次回はRKSと各ベンダーのマネージドKuberntesサービスの監視方法についての記事を記載させていただきます!
ここまでお読みいただきありがとうございました!