VK Cloud logo

Кластер мониторингі

Kubernetes кластерінің күйін бақылау үшін келесі құралдар қолжетімді:

  • Kubernetes Dashboard ішіне ендірілген құралдар.

    Олар Kubernetes ресурстары туралы ақпаратты көруге мүмкіндік беретін базалық мониторинг мүмкіндіктерін қамтамасыз етеді.

  • Мониторинг аддоны.

    Аддон кластер мониторингінің мүмкіндіктерін кеңейтеді:

    • Kubernetes-тің көптеген ресурстары, жеке подтарға дейін, бойынша метрикаларды көруге мүмкіндік береді.
    • Метрикалар үшін берілген шектер асқан кезде хабарламалар жіберетін alert-терді қолдайды. Мысалы, кластер ресурстарының қолжетімсіздігін немесе worker-түйіндерде есептеу қуатының жетіспеуін бақылауға болады.
    • Кластер ресурстарының тұтынылуын болжауға, болжау графиктерін қарауға және ресурстардың жақын арада таусылуы туралы хабарламаларды алдын ала алуға мүмкіндік береді. Болжау тек VK Tech тарапынан доработкалары бар аддон нұсқаларында қолжетімді (нұсқа нөмірінде vk бар).

    Мониторинг аддоны кластерде орнатылған-орнатылмағанын білу үшін, орнатылған аддондар тізімін қараңыз.

Kubernetes Dashboard пайдалану

  1. Kubernetes Dashboard көмегімен кластерге қосылыңыз.

  2. Кластер ресурстары туралы деректерді алыңыз:

    1. Kubernetes Dashboard интерфейсінің жоғарғы жағындағы ашылмалы тізімнен қажетті namespace-ті таңдаңыз. Әдепкі бойынша default namespace-і таңдалған.
    2. Бүйірлік мәзірден қажетті Kubernetes ресурсын таңдаңыз.

Кластер метрикаларын көру үшін Grafana-ға қосылу

  1. Кластерде мониторинг аддоны (kube-prometheus-stack) орнатылғанына көз жеткізіңіз.

  2. Көз жеткізіңіз, кластерге kubectl көмегімен қосыла алатыныңызға.

  3. Grafana веб-интерфейсіне қол жеткізіңіз:

    1. Терминалдың бөлек сессиясында команданы орындаңыз:

      kubectl -n prometheus-monitoring port-forward service/kube-prometheus-stack-grafana 8001:80
    2. Команда шығысы бойынша Grafana-ға қол жеткізу үшін kubectl ашқан портты анықтаңыз.

      Порт нөмірі таңбасына дейін көрсетіледі. Мысалы, осы шығыстан қосылу үшін 6637 порты пайдаланылатыны көрінеді:

      Forwarding from 127.0.0.1:6637 -> 3000Forwarding from [::1]:6637 -> 3000
    3. Браузерде Grafana веб-интерфейсіне қол жеткізу URL-ын ашыңыз:

      http://localhost:<ПОРТ>/

      Grafana кіру беті ашылады.

  4. Grafana-ға кіріңіз. Аддон қандай параметрлермен орнатылғанына байланысты мыналардың бірін пайдаланыңыз:

    • admin логині мен уақытша құпиясөз. Құпиясөзді алғашқы кіруден кейін ауыстыру қажет болады.
    • admin логині мен Kubernetes құпиясынан алынған тұрақты құпиясөз.

Енді сіз Grafana-мен жұмыс істей аласыз. Мысалы, дашбордтар жасап, оларды қарай аласыз. Kubernetes-тің әртүрлі ресурстары туралы ақпараты бар алдын ала бапталған дашбордтар бүйірлік мәзірдегі Dashboards → Browse бөлімінде қолжетімді.

Grafana-мен жұмыс туралы толығырақ ресми құжаттамадан қараңыз.

Кластер ресурстарының тұтынылуын болжау

VK Tech доработкалары бар kube-prometheus-stack мониторинг аддонына кластердің белгілі бір ресурстары берілген уақыттан кейін таусылады деп болжанған жағдайда хабарламалар жіберуге арналған alert-тер ендірілген. Сондай-ақ бұл аддон Grafana-да ресурстар тұтынылуының ағымдағы болжамдары көрсетілетін дашбордтарды ұсынады.

Аддон болжамдарды сызықтық регрессия әдісімен жасайды: берілген кезең шегінде белгілі бір аралықпен жиналған метрика мәндері бойынша сызықтық функция құрылады; болжам осы функцияның болашақтағы берілген уақыттан кейінгі мәні ретінде есептеледі. Алынған мән Kubernetes объектісіндегі ресурс сыйымдылығының ең жоғарғы мәнінен пайызбен өрнектеледі.

  1. Кластерде VK Tech доработкалары бар (нұсқа нөмірінде vk жұрнағы бар) kube-prometheus-stack мониторинг аддонының нұсқасы орнатылғанына көз жеткізіңіз.

  2. kube-prometheus-stack аддоны кодының өңдеу бетіне өтіңіз және кодтағы grafana.alerts.enabled параметрі true мәніне тең екеніне көз жеткізіңіз. Бұл мән параметрге аддонды орнату кезінде беріледі.

  3. Егер бұл параметр false болып өзгертілсе, оны true етіп түзетіп, жаңартылған баптауларды сақтаңыз.

  4. Grafana-ға кіріңіз.

  5. Бүйірлік мәзірден Dashboards бөліміне өтіңіз.

  6. VK Cloud бөліміндегі дашбордтар тізімінен K8s Resources Prediction дашбордын ашыңыз.

  7. Ресурстар тұтынылуының қолжетімді болжамдарын қараңыз:

    • CPU Leaders: worker-түйіндерінің CPU тұтыну болжамы.
    • Memory Leaders: worker-түйіндерінің RAM тұтыну болжамы.
    • Persistent Volume Leaders: тұрақты томдағы (PV) орын тұтыну болжамы.
    • Inode Leaders: тұрақты томдағы индекс дескрипторларының (inode) тұтынылу болжамы.
  8. (Опционалды) Grafana басқару элементтері арқылы болжамдардың өзіңізге ыңғайлы көрсетілуін баптаңыз.

  9. (Опционалды) Болжамдар есептелетін параметрлерді өзгертіңіз:

    • Analysis period: болжам функциясын құру үшін пайдаланылатын, ағымдағы сәтке дейінгі уақыт аралығы.
    • Forecast horizon: болжам есептелетін болашақ сәт пен ағымдағы сәт арасындағы аралық.
  10. Бүйірлік мәзірден AlertingAlert rules бөліміне өтіңіз.

  11. Grafana блогында VK Cloud > K8s Resources Prediction бумасын ашып, ресурстардың таусылуына арналған ендірілген alert-терді қараңыз:

    • K8sNodeCpuPrediction: worker-түйінінде бос CPU жоқ.
    • K8sNodeMemoryPrediction: worker-түйінінде бос RAM жады жоқ.
    • K8sPersistentVolumeCapacityPrediction: тұрақты томда бос орын жоқ.
    • K8sPersistentVolumeInodePrediction: тұрақты томда бос индекс дескрипторлары жоқ.

    Бұл alert-тердің келесі параметрлері бар:

    • Деректерді талдау тереңдігі: 1 апта.
    • Метрикадан деректер таңдалатын аралық: 10 минут.
    • Болжам тереңдігі: 1 күн.
    • Alert іске қосылу шегі: 100%.

    Ендірілген alert-тердің параметрлерін өзгертуге болмайды, бірақ ендірілген alert негізінде өз alert-іңізді жасауға болады.

  12. (Опционалды) Ендірілген alert негізінде өз alert-іңізді жасаңыз:

    1. Alert-тер тізімінде қажетті ендірілген alert үшін, мысалы K8sNodeCpuPrediction, көшіру батырмасын басыңыз.

    2. Ескертуді оқып, Copy батырмасын басыңыз.

      Add rule беті ашылады. 2 Define query and alert condition бөлімінде A белгісінің астында сұрау жолы көрсетіледі. K8sNodeCpuPrediction alert-і үшін ол мынадай болады:

      predict_linear(avg(instance:node_cpu_utilisation:rate5m * 100  * on(instance) group_left(nodename) node_uname_info{nodename!~".*master.*"}) by (nodename) [1w:10m],86400)

      Бұл сұрауда келесі мәндер бар:

      • 100 — пайызбен берілген alert іске қосылу шегі;
      • 1w — деректерді талдау тереңдігі;
      • 10m — деректерді таңдау аралығы;
      • 86400 — секундпен берілген болжам тереңдігі.
    3. Мәндерді қажеттілеріне өзгертіңіз. Болжам тереңдігі тек секундпен беріледі, ал талдау тереңдігі мен таңдау аралығы үшін басқа өлшем бірліктері де қолжетімді.

    4. Alert-тің басқа параметрлерін Grafana ресми құжаттамасында сипатталғандай баптаңыз.

    5. Өзгерістерді сақтаңыз.

  13. Ендірілген және өз alert-теріңіздің іске қосылуы туралы хабарламаларды жеткізуді баптаңыз.

Болжауды баптау аяқталды.

Енді сіз:

  • ресурстардың таусылуы туралы хабарламалар ала аласыз;
  • хабарлама алған кезде ықтимал мәселелерді алдын ала шешу үшін басқа объектілер бойынша да болжамдарды қарай аласыз;
  • ағымдағы болжамдарды қарап, оларды Grafana-ның стандартты дашбордтарында көрсетілген тұтыну динамикасымен салыстыра аласыз;
  • салыстыру нәтижелері бойынша болжау параметрлерін нақтылап, өз alert-теріңізді жасай аласыз.