Щоб скористатися цією функцією, вам (або адміністратору кластера) потрібно увімкнути функціональну можливість PodAndContainerStatsFromCRI для всіх відповідних компонентів у вашому кластері.
Перегляньте Увімкнення або вимкнення функціональних можливостей для отримання додаткової інформації.
kubelet збирає метрики Pod та контейнерів через cAdvisor. Як бета-функція, Kubernetes дозволяє налаштувати збір метрик Pod та контейнерів через Інтерфейс Виконання Контейнерів (CRI). Ви повинні увімкнути функціональну можливість PodAndContainerStatsFromCRI та використовувати сумісну реалізацію CRI (containerd >= 2.2, CRI-O >= 1.31.0), щоб використовувати механізм збору через CRI.
З увімкненим PodAndContainerStatsFromCRI, kubelet опитує підлегле середовище виконання контейнерів для отримання статистики Pod та контейнерів замість того, щоб безпосередньо перевіряти хост-систему за допомогою cAdvisor. Переваги використання середовища виконання контейнерів для цієї інформації, на відміну від прямого збору за допомогою cAdvisor, включають:
Потенційне покращення продуктивності, якщо середовище виконання контейнерів вже збирає цю інформацію під час нормальної роботи. У цьому випадку дані можуть бути повторно використані замість того, щоб бути знову агрегованими kubelet.
Це ще більше розʼєднує kubelet і середовище виконання контейнерів, дозволяючи збирати метрики для середовищ виконання контейнерів, які не запускають процеси безпосередньо на хості з kubelet, де вони спостережувані за допомогою cAdvisor (наприклад: середовища виконання контейнерів, що використовують віртуалізацію).
Коли функціональну можливість увімкнено, kubelet запитує CRI-середовище виконання для даних на рівні Pod та контейнерів замість cAdvisor. Статистика на рівні вузла та файлової системи образів продовжує збиратися з cAdvisor. Це стосується наступних точок доступу:
/stats/summary)kubelet отримує статистику Podʼів та контейнерів від CRI-середовища виконання замість cAdvisor для Summary API. Це включає статистику CPU, памʼяті, мережі та процесів для Podʼів і контейнерів.
/metrics/cadvisorkubelet запитує CRI-середовище виконання для метрик Podʼів та контейнерів через RPC ListPodSandboxMetrics і обслуговує їх на точці доступу /metrics/cadvisor. Це замінює збір на основі cAdvisor на рівні Podʼів та контейнерів, зберігаючи той самий шлях точки доступу та назви метрик. Метрики на рівні вузла та машини на цій точці доступу продовжують обслуговуватися cAdvisor.
kubelet експонує метрику kubelet_metrics_provider з міткою provider, встановленою на cri або cadvisor. Ви можете використовувати цю метрику, щоб перевірити, яке джерело активно надає статистику Podʼів та контейнерів на даному вузлі.
Щоб використовувати збір метрик на основі CRI, вам потрібно:
PodAndContainerStatsFromCRI на kubeletnamespace, pod та container до CRI-метрик на точці доступу /metrics/cadvisor, починаючи з випуску 1.36.3. Раніші версії не включають ці мітки, що може вплинути на запити метрик, які покладаються на них для зіставлення з метриками, створеними cAdvisor.Якщо CRI-середовище виконання не повідомляє очікувані метрики, kubelet повертається до використання cAdvisor для збору статистики Podʼів та контейнерів, навіть коли функціональну можливість увімкнено. Ви можете вимкнути функціональну можливість з перезапуском kubelet, щоб повністю повернутися до збору на основі cAdvisor.