Treo Blog

En este espacio puedes explorar las últimas tendencias y noticias en tecnología, seguridad informática e infraestructura TI.

  • Jonathan Rodriguez Paipa

Kubernetes 1.21: la estabilidad de las métricas llega a GA

Por: Han Kang (Google), Elana Hashman (Red Hat)



Crédito: Pexels

Kubernetes 1.21 marca la graduación del marco de estabilidad de métricas y, junto con él, las primeras métricas estables con soporte oficial. Las métricas estables no solo vienen con garantías de compatibilidad, sino que el marco de estabilidad de las métricas ofrece trampillas de escape que puede utilizar si encuentra métricas problemáticas.


Consulte la lista de métricas estables de Kubernetes aquí.


¿Qué son las métricas estables y por qué las necesitamos?


Una métrica estable es aquella que, desde el punto de vista del consumo, se puede consumir de manera confiable en varias versiones de Kubernetes sin riesgo de fallas en la ingestión.




La estabilidad de las métricas es una preocupación constante de la comunidad. La infraestructura de monitoreo de clústeres a menudo asume la estabilidad de algunas métricas del plano de control, por lo que hemos introducido un mecanismo para versionar métricas como una API adecuada, con garantías de estabilidad en torno a un proceso formal de desaprobación de métricas.


¿Cuáles son los niveles de estabilidad de las métricas?


Actualmente, las métricas pueden tener uno de dos niveles de estabilidad: alfa o estable.

Las métricas alfa no tienen garantías de estabilidad; como tales, se pueden modificar o eliminar en cualquier momento. En este momento, todas las métricas de Kubernetes entran implícitamente en esta categoría.


Se puede garantizar que las métricas estables no cambien, excepto que la métrica puede quedar marcada como obsoleta para una versión futura de Kubernetes. Por no cambiar, nos referimos a tres cosas:

  1. la métrica en sí no se eliminará ni se le cambiará el nombre

  2. el tipo de métrica no se modificará

  3. no se pueden agregar ni quitar etiquetas de esta métrica


Desde el punto de vista de la ingestión, es compatible con versiones anteriores agregar o eliminar valores posibles para las etiquetas que ya existen, pero no las etiquetas en sí mismas. Por lo tanto, se permite agregar o eliminar valores de una etiqueta existente. Las métricas estables también se pueden marcar como obsoletas para una versión futura de Kubernetes, ya que se realiza un seguimiento en un campo de metadatos y en realidad no cambia la métrica en sí.


No se permite quitar o agregar etiquetas de métricas estables. Para agregar o eliminar una etiqueta de una métrica estable existente, se tendría que introducir una nueva métrica y desaprobar la estable; de lo contrario, esto violaría los acuerdos de compatibilidad.


¿Cómo se desaprueban las métricas?


Si bien las políticas de desactivación solo afectan las garantías de estabilidad para las métricas estables (y no las alfa), la información de desactivación se puede proporcionar opcionalmente en las métricas alfa para ayudar a los propietarios de componentes a informar a los usuarios sobre la intención futura y ayudar con los planes de transición.


Una métrica estable que se somete al proceso de desactivación indica que la métrica eventualmente se eliminará. El ciclo de vida de la desaprobación de las métricas se ve más o menos así (cada etapa representa una versión de Kubernetes):




Las métricas obsoletas tienen las mismas garantías de estabilidad que sus contrapartes estables. Si una métrica estable está en desuso, se garantiza que una métrica estable en desuso no cambiará. Cuando se desaprueba una métrica estable, se especifica una versión futura de Kubernetes como el punto a partir del cual la métrica se considerará obsoleta.


Las métricas obsoletas tendrán su texto de descripción con el prefijo de una cadena de aviso de desactivación "(Deprecated from xy)" y se emitirá un registro de advertencia durante el registro de métricas, en el espíritu de la política oficial de desactivación de Kubernetes.


Al igual que sus contrapartes de métricas estables, las métricas obsoletas se registrarán automáticamente en el punto final de métricas. En una versión posterior (cuando la versión obsoleta de la métrica es igual a current_kubernetes_version - 4 )), una métrica obsoleta se convertirá en una métrica oculta . Las métricas ocultas no se registran automáticamente y, por lo tanto, están ocultas de forma predeterminada para los usuarios finales. Estas métricas ocultas se pueden volver a habilitar explícitamente para una versión después de que alcancen el estado oculto, para proporcionar una ruta de migración para los operadores de clústeres.


Como propietario de un componente de Kubernetes, ¿cómo agrego métricas estables?


Durante la instanciación de métricas, la estabilidad se puede especificar estableciendo el campo de metadatos, StabilityLevel, en "Estable". Cuando un StabilityLevel no se establece explícitamente, las métricas se establecen de forma predeterminada en la estabilidad "Alfa". Tenga en cuenta que las métricas que tienen campos determinados en tiempo de ejecución no se pueden marcar como Estable. Las métricas estables se detectarán durante el análisis estático durante la fase previa al compromiso y deben ser revisadas por sig-instrumentation.


var metricDefinition = kubemetrics.CounterOpts{
    Name: "some_metric",
    Help: "some description",
    StabilityLevel: kubemetrics.STABLE,
}

Para obtener más ejemplos de cómo configurar la estabilidad y el abandono de las métricas, consulte Metrics Stability KEP


¿Cómo me involucro?


Este proyecto, como todos los de Kubernetes, es el resultado del arduo trabajo de muchos colaboradores de diversos orígenes que trabajan juntos. Ofrecemos un enorme agradecimiento a todos los colaboradores de la comunidad de Kubernetes que ayudaron a revisar el diseño y la implementación del proyecto, incluidos, entre otros, los siguientes:

  • Han Kang (lógicohan)

  • Frederic Branczyk (brancz)

  • Marek Siarkowicz (serathius)

  • Elana Hashman (ehashman)

  • Solly Ross (DirectXMan12)

  • Stefan Schimanski (sttts)

  • David Ashpole (dashpole)

  • Yuchen Zhou (yoyinzyc)

  • Yu Yi (erain)

Si está interesado en participar en el diseño y desarrollo de instrumentación o en cualquier parte del sistema de métricas de Kubernetes, únase al Grupo de interés especial de instrumentación de Kubernetes (SIG) . Estamos creciendo rápidamente y siempre damos la bienvenida a nuevos colaboradores.



Fuente: Blog de Kubernetes

3 vistas0 comentarios