Agotamiento del espacio en disco en máquinas virtuales del plano de control debido a la acumulación de registros de auditoría kube-apiserver

Se aplica a: AKS en Azure Local

Síntomas

Si ejecuta comandos kubectl y tiene problemas, es posible que vea errores como:

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)

Cuando se usa SSH en la máquina virtual del plano de control, es posible que observe que la máquina virtual del plano de control se quedó sin espacio en disco, específicamente en la partición /dev/sda2 . Esto se debe a la acumulación de registros de auditoría kube-apiserver en el directorio /var/log/kube-apiserver , que puede consumir aproximadamente 90 GB de espacio en disco.

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

El problema se produce porque el --audit-log-maxbackup valor se establece en 0. Esta configuración permite que los registros de auditoría se acumulan sin ningún límite y, finalmente, rellenan el disco.

Mitigación

Este problema se corrigió en AKS en Azure Local, versión 2507. Actualice la implementación local de Azure a la compilación 2507.

Solución alternativa para las versiones 2503 o 2504 de Azure Local

Para resolver el problema temporalmente, debe limpiar manualmente los registros de auditoría antiguos. Siga estos pasos:

  • Conéctate por SSH a la máquina virtual (VM) del plano de control del clúster AKS Arc.
  • Quite los registros de auditoría antiguos de la carpeta /var/log/kube-apiserver .
  • Si tiene varios nodos del plano de control, debe repetir este proceso en cada máquina virtual del plano de control.

SSH a la VM del plano de control y vaya al directorio de registros kube-apiserver:

cd /var/log/kube-apiserver

Quite los archivos de registro de auditoría antiguos:

rm audit-*.log

Salga de la sesión SSH:

exit

Pasos siguientes

Problemas conocidos en AKS habilitados por Azure Arc