
Actualicé un clúster de Kubernetes de 1.26.xa 1.27.x
Y ahora, cada vez que intento crear un objeto CronJob
o Job
tipo, aparece el siguiente mensaje de advertencia:
Warning: Use tokens from the TokenRequest API or manually created secret-based tokens instead of auto-generated secret-based tokens.
Lo que tengo: una cuenta de servicio
Que he hecho:
- Creó un nuevo secreto con una
kubernetes.io/service-account.name
referencia de anotación. - Se eliminó el
<sa-name>-token-xxxx
secreto predeterminado. - Comprobado que
sa.<sa-name>.secrets
ahora está vacío.
Sin embargo, sigo recibiendo la advertencia.
Revisé el código fuente:https://github.com/kubernetes/kubernetes/blob/0241da314e0e69817d66313b45a69c19d1ce7327/pkg/serviceaccount/legacy.go#L152
A partir de ahí parece que no tener un secreto en .secrets debería ser suficiente, pero no lo es.
Además, reinicié todo solo para asegurarme de que no haya nada almacenado en caché en alguna parte.
Y de alguna manera es específico solo para trabajos/cronjobs: la creación de pods, implementaciones, servicios e ingresos huérfanos funciona bien; pero la creación de trabajos y cronjobs activa la advertencia.
¿Qué más me falta?
Respuesta1
Al parecer, kubectl
la culpa es del caché.
Por lo tanto, ~/.kube/cache
se solucionó el problema.