{"id":31139,"date":"2019-10-31T21:39:40","date_gmt":"2019-10-31T18:39:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/monitorim-resursy-klasterov-kubernetes\/"},"modified":"2019-10-31T21:39:40","modified_gmt":"2019-10-31T18:39:40","slug":"monitorim-resursy-klasterov-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitorim-resursy-klasterov-kubernetes","title":{"rendered":"Kubernetes klastrite ressursside j\u00e4lgimine","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/bn\/g6\/jg\/bng6jgpkvlzy8-2zahywzsnz8du.png\"><img decoding=\"async\" alt=\"Kubernetes klastrite ressursside j\u00e4lgimine\" src=\"\/wp-content\/uploads\/2019\/04\/e3e07ee5a2271263948b3d3b39f3b66d.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Ma l\u00f5in Kube Eagle'i \u2013 Prometheus'e eksportija. See on lahe t\u00f6\u00f6riist, mis aitab paremini m\u00f5ista v\u00e4ikeste ja keskmiste klasside ressursse. L\u00f5ppkokkuv\u00f5ttes s\u00e4\u00e4stsin ma mitusada dollarit, kuna suutsin leida \u00f5iged masina t\u00fc\u00fcbid ja seadistada rakenduste ressursipiirangud vastavalt t\u00f6\u00f6koormusele.<\/p>\n<p><\/p>\n<p>R\u00e4\u00e4gin eelistest <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/google-cloud-tools\/kube-eagle\">Kube Eagle<\/a><\/noindex>, kuid k\u00f5igepealt selgitan, mis probleemid tekkisid ja miks oli vajalik kvaliteetne j\u00e4lgimine.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Haldasin m\u00f5nda klassi, kus oli 4\u201350 s\u00f5lme. Igas klassis oli kuni 200 mikroteenust ja rakendust. Et t\u00f5husamalt kasutada olemasolevat riistvara, olid enamus kasutuselev\u00f5tteid seadistatud burstable-m\u00e4lu ja CPU ressurssidega. Nii saavad pood v\u00f5tta kasutusele saadaval olevad ressursid, kui neid on vaja, ja seejuures ei sega nad teisi rakendusi selle s\u00f5lme peal. Kas see pole tore?<\/p>\n<p><\/p>\n<p>Ja kuigi klass kasutas suhteliselt v\u00e4he CPU-d (8%) ja m\u00e4lu (40%), tekkis meil pidevalt probleeme poodide v\u00e4ljat\u00f5rjumisega, kui need p\u00fc\u00fcdsid eraldada rohkem m\u00e4lu, kui s\u00f5lmes oli saadaval. Meil oli tol ajal ainult \u00fcks paneel Kubernetes'e ressursside j\u00e4lgimiseks. Selline:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/qr\/cp\/x2\/qrcpx2avguhqnbxxg7trlxfnh4u.png\"><img decoding=\"async\" alt=\"Kubernetes klastrite ressursside j\u00e4lgimine\" src=\"\/wp-content\/uploads\/2019\/04\/4ff784375fd4d01cc420d0d5b6389524.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<em>Grafana paneel ainult cAdvisor'i m\u00f5\u00f5dikute jaoks<\/em><\/p>\n<p><\/p>\n<p>Sellega paneeliga ei ole probleem n\u00e4ha s\u00f5lmi, mis tarbivad palju m\u00e4lu ja CPU-d. Probleem on aru saada, mis on p\u00f5hjuseks. Et potid ikka paigal p\u00fcsiksid, v\u00f5iks k\u00f5ikides pod'des t\u00f5epoolest seadistada tagatud ressursid (taotletud ressursid on v\u00f5rdsed piiranguga). Kuid see ei ole ruumi k\u00f5ige nutikam kasutamine. Klassis oli mitusada gigabaiti m\u00e4lu, kuid m\u00f5ned s\u00f5lmed n\u00e4lgisid, samas kui teistel j\u00e4i \u00fcle 4\u201310 GB.<\/p>\n<p><\/p>\n<p>Tuleb v\u00e4lja, et Kubernetes'e planeerija jagas t\u00f6\u00f6koormusi saadaval olevate ressursside vahel ebav\u00f5rdselt. Kubernetes'e planeerija arvesse v\u00f5tab erinevaid konfiguratsioone: affinity reeglid, taints ja tolerantsid, s\u00f5lmede valijad, mis v\u00f5ivad piirata saadaval olevaid s\u00f5lmi. Kuid minu puhul ei olnud midagi sellist, ja pod'd planeeriti vastavalt igas s\u00f5lmes taotletud ressurssidele.<\/p>\n<p><\/p>\n<p>Pod'ile valiti s\u00f5lm, kus oli k\u00f5ige rohkem vabu ressursse ja mis vastas taotluse tingimustele. L\u00f5puks selgus, et s\u00f5lmedes taotletud ressursid ei kattunud tegeliku kasutusega, ja siin tuli appi Kube Eagle ning tema ressursside j\u00e4lgimisv\u00f5imalused.<\/p>\n<p><\/p>\n<p>Peaaegu k\u00f5ik minu Kubernetes'i klassid j\u00e4lgiti ainult <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/prometheus\/node_exporter\">Node exporter<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kube-state-metrics\">Kube State Metrics<\/a><\/noindex>Node Exporter annab statistikat sisendi, v\u00e4ljundi ja ketta kasutamise, CPU ja RAM-i kohta, samas kui Kube State Metrics n\u00e4itab Kubernetes'i objektide m\u00f5\u00f5dikuid, n\u00e4iteks CPU ja m\u00e4lu ressursi n\u00f5udeid ja limiite.<\/p>\n<p><\/p>\n<p>Peame \u00fchendama kasutuse m\u00f5\u00f5dikud n\u00f5udluse ja limiitidega Grafanas, et saada kogu teave probleemist. Tundub lihtne, kuid tegelikult on nende kahe t\u00f6\u00f6riista m\u00e4rgistamine erinev ning m\u00f5nel m\u00f5\u00f5dikul pole isegi metaandmete sildid. Kube Eagle teeb k\u00f5ik ise ja paneel n\u00e4eb v\u00e4lja selline:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/u3\/ce\/hk\/u3cehkycztlwc9m7lpip-4lw2xe.png\"><img decoding=\"async\" alt=\"Kubernetes klastrite ressursside j\u00e4lgimine\" src=\"\/wp-content\/uploads\/2019\/04\/53898543679d337df5a151b54fb75f5d.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/po\/zi\/fm\/pozifm1dgtkf9nsasb42k1faqi4.png\"><img decoding=\"async\" alt=\"Kubernetes klastrite ressursside j\u00e4lgimine\" src=\"\/wp-content\/uploads\/2019\/04\/a549c865b24f90fcc4375ffbb76ea270.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<em><noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/dashboards\/9871\">Kube Eagle'i j\u00e4lgimispaneel<\/a><\/noindex><\/em><\/p>\n<p><\/p>\n<p>Oleme suutnud lahendada palju ressursiprobleeme ja s\u00e4\u00e4sta riistvara:<\/p>\n<p><\/p>\n<ol>\n<li>M\u00f5ned arendajad ei teadnud, kui palju ressursse mikroteenused vajavad (v\u00f5i ei viitsinud sellega tegeleda). Meil polnud vahendeid vale ressursi n\u00f5udluse leidmiseks - selleks peab teadma kasutust ning n\u00f5udmisi ja limiite. N\u00fc\u00fcd nad n\u00e4evad Prometheuse m\u00f5\u00f5dikuid, j\u00e4lgivad tegelikku kasutust ja kohandavad n\u00f5udmisi ja limiite.<\/li>\n<li>JVM-i rakendused v\u00f5tavad nii palju RAM-i, kui nad saavad. Pr\u00fcgikoristaja vabastab m\u00e4lu ainult siis, kui kasutus \u00fcletab 75%. Kuna enamikul teenustest on m\u00e4lu burstable, kasutas JVM alati rohkem m\u00e4lu. Seet\u00f5ttu tarbisid k\u00f5ik need Java-teenused palju rohkem RAM-i, kui oodata oli.<\/li>\n<li>M\u00f5ned rakendused k\u00fcsisid liiga palju m\u00e4lu, ja Kubernetes'i planeerija ei eraldanud neid s\u00f5lmede teistele rakendustele, ehkki tegelikult olid nad vabad. \u00dcks arendaja lisas kogemata n\u00f5udlusse liigse numbri ja haaras endale suure osa RAM-ist: 20 GB asemel 2. Keegi ei m\u00e4rganud. Rakendusel oli 3 replikat, nii et kannatada sai koguni 3 s\u00f5lme.<\/li>\n<li>Oleme kehtestanud piirangud ressurssidele, \u00fcmber planeerinud podid \u00f5igete n\u00f5udmistega ja saavutanud ideaalse tasakaalu raudvara kasutuses k\u00f5igis s\u00f5lmedes. M\u00f5ned s\u00f5lmed oleks isegi v\u00f5imalik sulgeda. Ja siis n\u00e4gime, et meil on valed masinad (CPU-le orienteeritud, mitte m\u00e4lule). Muutsime t\u00fc\u00fcpi ja eemaldasime veel m\u00f5ned s\u00f5lmed.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"itogi\">Summary<\/h3>\n<p><\/p>\n<p>Burstable ressurssidega klastris kasutate paremini olemasolevat riistvara, kuid Kubernetes'i planeerija plaanib podid ressursside n\u00f5udluste alusel, mis on ohtlik. Et kahe k\u00e4rbsega pihta saada: v\u00e4ltida probleeme ja kasutada ressursse maksimaalselt, on vajalik hea j\u00e4lgimine. Seda ongi vaja. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/google-cloud-tools\/kube-eagle\">Kube Eagle<\/a><\/noindex> (Prometheuse eksportija ja Grafana j\u00e4lgimistahvel).<\/p>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/447336\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042f \u0441\u043e\u0437\u0434\u0430\u043b Kube Eagle\u00a0\u2014 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440 Prometheus. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u043a\u0440\u0443\u0442\u0430\u044f \u0448\u0442\u0443\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0438 \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432. \u0412 \u0438\u0442\u043e\u0433\u0435 \u044f \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043b \u043d\u0435 \u043e\u0434\u043d\u0443 \u0441\u043e\u0442\u043d\u044e \u0434\u043e\u043b\u043b\u0430\u0440\u043e\u0432, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u043b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u043c\u0430\u0448\u0438\u043d \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u0434 \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u042f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u0445 Kube Eagle, \u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0431\u044a\u044f\u0441\u043d\u044e, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0432\u044b\u0448\u0435\u043b \u0441\u044b\u0440-\u0431\u043e\u0440 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23107,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31139","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitorim-resursy-klasterov-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitorim-resursy-klasterov-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:39:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:39:40+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47J\u00e4lgime Kubernetesi klastrite ressursse | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitorim-resursy-klasterov-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 Kubernetes | ProHoster","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitorim-resursy-klasterov-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:39:40+00:00","article:modified_time":"2019-10-31T18:39:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31139","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 04:42:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:22:34","updated":"2026-01-21 04:42:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=31139"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31139\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/23107"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=31139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=31139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=31139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}