Ngawas sumberdaya klaster Kubernetes

Ngawas sumberdaya klaster Kubernetes

Kuring nyiptakeun Kube Eagle - eksportir Prometheus. Tétéla éta hal tiis nu mantuan pikeun leuwih hadé ngartos sumberdaya klaster leutik tur sedeng-ukuran. Tungtungna, kuring ngahemat ratusan dolar sabab kuring milih jinis mesin anu leres sareng ngonpigurasikeun wates sumberdaya aplikasi pikeun beban kerja.

Kuring gé ngabejaan Anjeun tentang kauntungan Kube Eagle, tapi mimitina kuring bakal ngajelaskeun naon ngabalukarkeun fuss jeung naha ngawaskeun kualitas luhur diperlukeun.

Kuring junun sababaraha klaster 4-50 titik. Unggal klaster ngandung nepi ka 200 microservices sarta aplikasi. Pikeun ngamangpaatkeun hardware anu langkung saé, seueur panyebaran dikonpigurasikeun ku RAM sareng sumber daya CPU anu tiasa dianggo. Ku cara ieu, pods tiasa nyandak sumber anu sayogi upami diperyogikeun, sareng dina waktos anu sami henteu ngaganggu aplikasi anu sanés dina titik ieu. Muhun, teu eta hébat?

Sarta sanajan klaster dihakan rélatif saeutik CPU (8%) jeung RAM (40%), urang terus ngalaman masalah sareng pods keur preempted nalika aranjeunna diusahakeun allocate memori leuwih ti éta sadia on node. Jaman harita urang ngan ukur gaduh hiji dasbor pikeun ngawaskeun sumber daya Kubernetes. Resep ieu:

Ngawas sumberdaya klaster Kubernetes
Dashboard Grafana sareng métrik cAdvisor wungkul

Kalayan panel sapertos kitu, henteu masalah ningali titik anu ngahakan seueur mémori sareng CPU. Masalahna nyaéta pikeun terang naon alesanana. Pikeun ngajaga polong dina tempatna, tangtosna tiasa nyetél sumber daya anu dijamin dina sadaya pod (sumber daya anu dipénta sami sareng wates). Tapi ieu sanes pamakéan smartest hardware. Kluster éta ngagaduhan sababaraha ratus gigabyte mémori, sedengkeun sababaraha titik kalaparan, sedengkeun anu sanésna ngagaduhan 4-10 GB dina cadangan.

Tétéla yén penjadwal Kubernetes nyebarkeun beban kerja henteu rata dina sumber daya anu sayogi. Penjadwal Kubernetes merhatikeun konfigurasi anu béda: afinitas, taint sareng aturan toleransi, pamilih titik anu tiasa ngabatesan titik anu sayogi. Tapi bisi kuring teu aya anu sapertos kitu, sareng pods direncanakeun gumantung kana sumber anu dipénta dina unggal titik.

Titik anu gaduh sumber daya anu paling bébas sareng anu nyumponan kaayaan pamundut dipilih pikeun pod. Kami mendakan yén sumber daya anu dipénta dina titik henteu cocog sareng pamakean anu saleresna, sareng ieu dimana Kube Eagle sareng kamampuan ngawaskeun sumberdaya na sumping ka nyalametkeun.

Kuring geus ampir kabéh klaster Kubernetes diawaskeun ngan kalawan Éksportir node и Métrik Propinsi Kube. Node Exporter nyayogikeun statistik ngeunaan I/O sareng disk, CPU, sareng pamakean RAM, sedengkeun Kube State Metrics nunjukkeun métrik objék Kubernetes sapertos pamundut sareng wates sumber daya CPU sareng mémori.

Urang kedah ngagabungkeun métrik pamakean sareng metrik pamundut sareng wates dina Grafana, teras urang bakal nampi sadaya inpormasi ngeunaan masalah éta. Ieu disada basajan, tapi dua alat sabenerna ngaranan labél béda, sarta sababaraha metrics teu boga labél metadata nanaon. Kube Eagle ngalakukeun sagalana sorangan jeung panel kasampak kawas kieu:

Ngawas sumberdaya klaster Kubernetes

Ngawas sumberdaya klaster Kubernetes
Kube Eagle Dashboard

Kami junun ngabéréskeun seueur masalah sareng sumber daya sareng ngahémat alat:

  1. Sababaraha pamekar teu terang sabaraha sumberdaya microservices diperlukeun (atawa ngan saukur teu ganggu). Teu aya deui jalan pikeun urang mendakan pamundut anu salah pikeun sumber - pikeun ieu urang kedah terang konsumsi ditambah paménta sareng wates. Ayeuna aranjeunna ningali métrik Prometheus, ngawas pamakean saleresna sareng nyaluyukeun pamundut sareng wates.
  2. aplikasi JVM nyandak saloba RAM sakumaha aranjeunna tiasa ngadamel. The collector sampah ngan ngaleupaskeun memori nalika leuwih ti 75% dipaké. Sarta saprak paling jasa boga memori burstable, éta salawasna dikawasaan ku JVM. Ku alatan éta, sadaya jasa Java ieu tuang langkung seueur RAM tibatan anu disangka.
  3. Sababaraha aplikasi dipénta teuing memori, sarta scheduler Kubernetes teu masihan titik ieu ka aplikasi sejenna, sanajan kanyataanana maranéhanana éta bébas ti titik lianna. Hiji pamekar ngahaja ditambahkeun hiji angka tambahan dina pamundut jeung nyekel sapotong badag RAM: 20 GB tinimbang 2. Taya sahijieun noticed. Aplikasina ngagaduhan 3 réplika, janten saloba 3 titik anu kapangaruhan.
  4. Kami ngenalkeun wates sumber daya, ngajadwalkeun ulang pod sareng pamundut anu leres, sareng ngagaduhan kasaimbangan idéal panggunaan hardware dina sadaya titik. Sababaraha titik tiasa ditutup sadayana. Lajeng urang nempo yén urang tadi mesin salah (CPU berorientasi, teu memori berorientasi). Kami ngarobih jinisna sareng ngahapus sababaraha titik deui.

hasil

Kalawan sumberdaya burstable dina kluster, Anjeun nganggo hardware sadia leuwih éfisién, tapi scheduler Kubernetes jadwal pods dumasar kana requests sumberdaya, sarta ieu fraught. Pikeun maéhan dua manuk sareng hiji batu: pikeun ngahindarkeun masalah sareng ngagunakeun sumber daya sacara maksimal, anjeun peryogi pangawasan anu saé. Ieu naha éta bakal mangpaat Kube Eagle (Éksportir Prometheus sareng dasbor Grafana).

sumber: www.habr.com

Tambahkeun komentar