Kubernetes обновил Metrics API до стабильной версии v1. Это значимое событие для администраторов и разработчиков — теперь они могут рассчитывать на гарантии стабильности API для метрик по потреблению CPU и памяти.
История Metrics API
Metrics API впервые был представлен в Kubernetes версии 1.6 как альфа-версия и достиг бета-стадии в версии 1.8. С тех пор его активно использовали различные инструменты, включая HorizontalPodAutoscaler и команды kubectl top. За годы стабильной работы API подтвердил свою полезность, и теперь его статус официально повышен до версии v1.
Что изменилось в релизе v1.37
В новой стабильной версии Metrics API продолжает предоставлять два основных типа ресурсов: NodeMetrics для отслеживания потребления ресурсов узлов и PodMetrics для подов, включая подробные метрики по отдельным контейнерам. Версия v1 сохраняет предыдущие форматы v1beta1, и изменений в структуре данных не произошло.
Клиенты до сих пор могут получать метрики с помощью команд kubectl, таких как:
kubectl get --raw /apis/metrics.k8s.io/v1/nodeskubectl get --raw /apis/metrics.k8s.io/v1/namespaces/default/pods
Команда kubectl top поддерживает обе версии API: она предпочитает v1, когда та доступна, и автоматически переключается на v1beta1 в кластерах, где новая версия ещё не включена.
Практическое значение для пользователей
Теперь администраторы могут использовать стабильную версию Metrics API без включения отдельных feature gate. Но для доступа к v1 кластеру по-прежнему нужен совместимый источник метрик, например metrics-server, который должен обслуживать API v1.metrics.k8s.io.
Следующей задачей для разработчиков является полная интеграция v1 в существующие системы, ведь поддержка версии v1beta1 останется доступной в Kubernetes v1.37, обеспечивая тем самым обратную совместимость.