Kubernetes 監査ログのローテーションサイズ設定の確認

ファイルサイズと世代数を合わせて調整し、必要な記録を保存してください。

説明

kube-apiserver の --audit-log-maxsize は、監査ログをローテーションする前の最大ファイルサイズを MB 単位で指定します。小さいファイルは頻繁にローテーションされるため、世代数が制限されている環境では記録が早く消える場合があります。省略だけで小さすぎるとは判断できず、実行バージョンのデフォルト値を確認する必要があります。

想定される影響

  • ログが急増すると、同じファイル数でも保存できる履歴が短くなる場合があります。
  • 大きすぎるファイルは、容量管理や転送の負担になる場合があります。

対処方法

  • 実際のログ量と保存・転送要件に合わせて --audit-log-maxsize を設定してください。例の 100MB がすべての環境で十分とは限りません。
  • 監査ポリシーとファイル保存先を設定し、maxbackup、maxage、外部保存方針を合わせて確認してください。実際のローテーション頻度と保存期間を確認してください。

例

v1.30.0 の引数だけを比較します。監査ポリシー、--audit-log-path、必要なマウントと他の API サーバー設定は省略しています。サイズ設定だけで監査ログが有効になるわけではありません。

変更前

yaml
apiVersion: v1
kind: Pod
metadata:
  name: kube-apiserver
spec:
  containers:
    - name: kube-apiserver
      image: registry.k8s.io/kube-apiserver:v1.30.0
      command:
        - kube-apiserver
      args:
        - --audit-log-maxsize=50

50MB をローテーションの基準にします。適切かどうかはログ量と保存方針全体によります。

変更後

yaml
apiVersion: v1
kind: Pod
metadata:
  name: kube-apiserver
spec:
  containers:
    - name: kube-apiserver
      image: registry.k8s.io/kube-apiserver:v1.30.0
      command:
        - kube-apiserver
      args:
        - --audit-log-maxsize=100

100MB に増やすと、同じログ量でのローテーション頻度が下がります。必要な保存期間は別途確認してください。

参考資料