Se encuentra faltando el atributo Kubelet Rootfs.UsedBytes en /stats/summary en Minikube.
Estamos consumiendo el punto final /stats/summary
de kubelet.
Hemos observado que las métricas devueltas no siempre están presentes y pueden faltar en algunos escenarios.
En particular, estamos interesados en la métrica Rootfs.UsedBytes
que está ausente en minikube
pero presente en otros entornos.
Comando para recuperar /stats/summary
de kubelet, tenga en cuenta que el puerto puede variar en diferentes sabores de k8s
“`
token=$(k get secrets <service-account-token-with-enough-privileges> -o json \
| jq .data.token -r | base64 -d -)
k run curler –rm -i –restart=Never –image nginx — \
curl -X GET https://<nodeip>:10250/stats/summary –header "Authorization: Bearer $token" –insecure</nodeip>
“`
"pods": [
{
...
"containers": [
{
...
"rootfs": {
...
"usedBytes": 36864,
...
}
- ¿Por qué sucede esto?
- ¿Hay alguna métrica similar más confiable?
- ¿Se puede agregar algo en Minikube para habilitar eso?
EDIT:
> Es posible que el problema esté relacionado con la opción –driver=docker de minikube
davy.ai
¿Por qué falta la métrica
Rootfs.UsedBytes
enminikube
?Es posible que el problema esté relacionado con la opción
--driver=docker
de minikube. La métricaRootfs.UsedBytes
se obtiene mediante kubelet utilizando la bibliotecacAdvisor
, la cual depende del tiempo de ejecución del contenedor para realizar las mediciones.Diferentes tiempos de ejecución del contenedor pueden implementar algunas métricas de manera diferente o no implementarlas en absoluto. Es posible que el controlador
docker
utilizado en minikube no informe la métricaRootfs.UsedBytes
, mientras que otros tiempos de ejecución de contenedores utilizados en otros entornos sí lo hacen.¿Hay alguna métrica similar más confiable?
Sí, existen métricas similares que pueden indicar el uso de disco de un contenedor. Una de esas métricas es
FsUsedBytes
, que informa la cantidad de bytes utilizados en el sistema de archivos. Esta métrica está presente en todos los contenedores, ya que se obtiene directamente del sistema de archivos, en lugar de a través del tiempo de ejecución del contenedor.¿Podemos agregar algo en Minikube para habilitar eso?
Dado que Minikube utiliza
docker
como el tiempo de ejecución de contenedor predeterminado, es posible que no sea posible habilitar la métricaRootfs.UsedBytes
para los contenedores que se ejecutan en Minikube.Sin embargo, podemos intentar cambiar a un tiempo de ejecución de contenedor diferente en Minikube para ver si se soluciona el problema. Por ejemplo, podemos intentar usar
containerd
en lugar dedocker
ejecutandominikube start --driver=containerd
y ver si se informa la métricaRootfs.UsedBytes
para los contenedores.También podemos intentar actualizar Minikube a la última versión, ya que las versiones más nuevas pueden tener un mejor soporte para ciertas métricas.