次の方法で共有


kube-apiserver 監査ログの蓄積によるコントロール プレーン VM のディスク領域不足

適用対象: AKS on Azure Local

症状

kubectl コマンドを実行していて問題が発生している場合は、次のようなエラーが表示されることがあります。

kubectl get ns
Error from server (InternalError): an error on the server ("Internal Server Error: \"/api/v1/namespaces?limit=500\": unknown") has prevented the request from succeeding (get namespaces)

コントロール プレーン VM に SSH 接続すると、コントロール プレーン VM のディスク領域 (特に /dev/sda2 パーティション) が不足していることに気付く場合があります。 これは、約 90 GB のディスク領域を消費する 可能性がある /var/log/kube-apiserver ディレクトリに kube-apiserver 監査ログが蓄積されているためです。

clouduser@moc-laiwyj6tly6 [ /var/log/kube-apiserver ]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           3.8G   84K  3.8G   1% /dev/shm
tmpfs           1.6G  179M  1.4G  12% /run
tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
/dev/sda2        99G   99G     0 100% /
tmpfs           3.8G     0  3.8G   0% /tmp
tmpfs           769M     0  769M   0% /run/user/1002
clouduser@moc-laiwyj6tly6 [ /var/log/kube-apiserver ]$ sudo ls -l /var/log/kube-apiserver|wc -l
890
clouduser@moc-laiwyj6tly6 [ /var/log/kube-apiserver ]$ sudo du -h /var/log/kube-apiserver
87G     /var/log/kube-apiserver

この問題は、 --audit-log-maxbackup 値が 0 に設定されているために発生します。 この設定により、監査ログは制限なく蓄積され、最終的にディスクがいっぱいになります。

緩和

この問題は 、AKS on Azure Local バージョン 2507 で修正されました。 Azure ローカル デプロイを 2507 ビルドにアップグレードします。

Azure ローカル バージョン 2503 または 2504 の回避策

この問題を一時的に解決するには、古い監査ログを手動でクリーンアップする必要があります。 次の手順に従います。

  • AKS Arc クラスターのコントロール プレーン仮想マシン (VM) に SSH 接続します。
  • /var/log/kube-apiserver フォルダーから古い監査ログを削除します。
  • 複数のコントロール プレーン ノードがある場合は、各コントロール プレーン VM でこのプロセスを繰り返す必要があります。

コントロール プレーン VM に SSH 接続 し、kube-apiserver logs ディレクトリに移動します。

cd /var/log/kube-apiserver

古い監査ログ ファイルを削除します。

rm audit-*.log

SSH セッションを終了します。

exit

次のステップ

Azure Arc で有効になっている AKS の既知の問題