適用対象: 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