Kubernetes v1.37: Metrics API стає стабільним

Kubernetes v1.37 переводить API metrics.k8s.io до стабільного статусу (v1). Цей API надає дані про використання CPU та памʼяті вузлами та Podʼами і лежить в основі таких команд, як kubectl top, а також автомасштабування на основі метрик ресурсів.

Для операторів кластера та розробників застосунків цей перехід означає, що API тепер має гарантії стабільності, які асоціюються зі стабільним API Kubernetes. API v1 має ті самі типи ресурсів і поля, що й v1beta1; це перехід версії API, а не зміна метрик, які збираються чи повертаються.

Давній API досягає стабільного статусу

Metrics API ресурсів було введено як альфа-версію в Kubernetes v1.6, а бета-версію він отримав у v1.8. Він залишався незмінним і роками використовувався у виробничих середовищах такими клієнтами, як HorizontalPodAutoscaler (HPA) та kubectl top. Kubernetes v1.37 формально переводить цей перевірений API до metrics.k8s.io/v1.

API надає два типи ресурсів:

  • NodeMetrics — використання CPU та памʼяті вузлом.
  • PodMetrics — використання CPU та памʼяті Podʼом, з розбивкою за контейнерами у полі containers.

API навмисно залишається малим. Він надає метрики ресурсів, необхідні для автомасштабування та базового інспектування; він не є заміною повного конвеєра моніторингу або API користувацьких метрик (custom.metrics.k8s.io).

Що змінилося з випуском v1.37?

Поверхня API v1 ідентична v1beta1, за винятком версії API. Немає жодних перейменованих полів, нових полів або змін у значенні повернутих значень використання CPU та памʼяті.

Наприклад, клієнт може отримати метрики вузлів зі стабільної точки доступу:

kubectl get --raw /apis/metrics.k8s.io/v1/nodes

Так само він може отримати метрики для Podʼів у просторі імен:

kubectl get --raw /apis/metrics.k8s.io/v1/namespaces/default/pods

kubectl top підтримує обидві версії API. Він надає перевагу v1, коли вона доступна, і автоматично переходить на v1beta1 у кластерах, які ще не надають v1. Контролер HPA наразі підтримує лише v1beta1. Підтримку вибору між v1 та v1beta1 на основі виявлення заплановано, але вона недоступна в Kubernetes v1.37.

Що вам потрібно зробити

Вам не потрібно вмикати жодної функціональної можливості. Metrics API надається через шар агрегації API, реалізацією, такою як metrics-server. Ви можете обрати будь-яку реалізацію metrics.k8s.io; щоб API метрик v1 був доступний у вашому кластері, ваша обрана реалізація має надавати API v1.metrics.k8s.io, і вам потрібно зареєструвати відповідний APIService.

Під час перехідного періоду реалізації мають надавати обидві версії — v1 та v1beta1. Збереження доступності обох версій підтримує сумісність зі старішими клієнтами. API v1beta1 залишається доступним у Kubernetes v1.37.

Ви можете переглянути, які версії надає ваш кластер, за допомогою:

kubectl get --raw /apis/metrics.k8s.io/ | jq .

Щойно ваша реалізація метрик підтримає v1, ви також можете перевірити, що її APIService доступний:

kubectl get apiservice v1.metrics.k8s.io

Дізнайтеся більше

Долучайтеся

Metrics API підтримується SIG Instrumentation. Щоб ставити запитання, ділитися відгуками або робити внесок, приєднуйтеся до каналу #sig-instrumentation у Kubernetes Slack або відвідуйте зустрічі SIG Instrumentation.

Востаннє змінено August 30, 2026 at 10:31 AM PST: [uk] Ukrainian translation (all-in-one) (ac41b20ac1)