Се сатҳи автоматизатсия дар Кубернетес: Чӣ тавр онҳоро самаранок истифода бурдан мумкин аст

Се сатҳи автоматизатсия дар Кубернетес: Чӣ тавр онҳоро самаранок истифода бурдан мумкин аст
Барои пурра азхуд кардани Kubernetes, шумо бояд роҳҳои гуногуни миқёси захираҳои кластерро донед: by мувофиқи таҳиякунандагони система, ин яке аз вазифахои асосии Кубернетес мебошад. Мо шарҳи сатҳи баландро дар бораи механизмҳои автоматизатсияи уфуқӣ ва амудӣ ва тағир додани андозаи кластер, инчунин тавсияҳо оид ба истифодаи самараноки онҳо пешниҳод кардем.

Моддаи Kubernetes Autoscaling 101: Autoscaler Cluster, Autoscaler Horizontal ва Vertical Pod Autoscaler Тарҷума аз ҷониби гурӯҳе, ки autoscaling дар Kubernetes aaS аз Mail.ru.

Чаро дар бораи миқёс фикр кардан муҳим аст

Кубернитель - воситаи идоракунии захираҳо ва оркестрсозӣ. Албатта, хуб аст, ки бо хусусиятҳои ҷолиби ҷойгиркунӣ, назорат ва идоракунии подкҳо (под як гурӯҳи контейнерҳоест, ки дар посух ба дархост ба кор андохта мешаванд).

Бо вуҷуди ин, шумо инчунин бояд дар бораи саволҳои зерин фикр кунед:

  1. Модулҳо ва барномаҳоро чӣ тавр васеъ кардан мумкин аст?
  2. Чӣ тавр контейнерҳоро фаъол ва самаранок нигоҳ доштан мумкин аст?
  3. Ба тағироти доимии код ва сарбории корбарон чӣ гуна посух додан мумкин аст?

Танзими кластерҳои Kubernetes барои мувозинати захираҳо ва иҷроиш метавонад душвор бошад ва дониши коршиносиро дар бораи корҳои дохилии Kubernetes талаб кунад. Сарбории кории барнома ё хидматҳои шумо метавонад дар давоми рӯз ё ҳатто дар тӯли як соат тағйир ёбад, аз ин рӯ мувозинат беҳтарин раванди ҷорӣ ҳисобида мешавад.

Сатҳи автоматикунонии Kubernetes

Миқёси самараноки автоматӣ ҳамоҳангсозии байни ду сатҳро талаб мекунад:

  1. Сатҳи Pod, аз ҷумла уфуқӣ (Horizontal Pod Autoscaler, HPA) ва autoscaler амудӣ (Vertical Pod Autoscaler, VPA). Ин миқёси захираҳои мавҷуда барои контейнерҳои шумост.
  2. Сатҳи кластер, ки аз ҷониби Cluster Autoscaler (CA) идора карда мешавад, ки шумораи гиреҳҳоро дар дохили кластер зиёд ё кам мекунад.

Модули уфуқӣ Autoscaler (HPA).

Тавре ки аз номаш бармеояд, HPA шумораи репликаҳои поддонҳоро миқёс мекунад. Аксари таҳиягарон CPU ва сарбории хотираро ҳамчун триггер барои тағир додани шумораи репликаҳо истифода мебаранд. Бо вуҷуди ин, мумкин аст, ки миқёси система дар асоси ченакҳои фармоишӣонҳо комбинатхо ё ҳатто нишондиҳандаҳои беруна.

Диаграммаи кории сатҳи баланди HPA:

  1. HPA пайваста арзишҳои метрикиро дар вақти насб дар фосилаи пешфарз 30 сония тафтиш мекунад.
  2. HPA кӯшиш мекунад, ки шумораи модулҳоро афзоиш диҳад, агар ба ҳадди муқарраршуда расида бошад.
  3. HPA шумораи репликаҳоро дар дохили контролери густариш/репликатсия навсозӣ мекунад.
  4. Пас аз он нозири ҷойгиркунӣ/репликатсия ҳама гуна модулҳои иловагии заруриро ҷойгир мекунад.

Се сатҳи автоматизатсия дар Кубернетес: Чӣ тавр онҳоро самаранок истифода бурдан мумкин аст
Ҳангоми расидан ба ҳадди метрикӣ, HPA раванди ҷобаҷогузории модулро оғоз мекунад

Ҳангоми истифодаи HPA, чизҳои зеринро ба назар гиред:

  • Фосилаи пешфарзии санҷиши HPA 30 сония аст. Он аз ҷониби парчам муқаррар карда мешавад уфуқӣ-pod-autoscaler-синхронизатсия-давраи дар мудири контролер.
  • Хатогии нисбии пешфарз 10% аст.
  • Пас аз афзоиши охирини шумораи модулҳо, HPA интизор аст, ки ченакҳо дар давоми се дақиқа мӯътадил шаванд. Ин фосила бо парчам муқаррар карда мешавад уфуқӣ-pod-autoscaler-upscale-таъхир.
  • Пас аз коҳиши охирини шумораи модулҳо, HPA барои мӯътадил шудан панҷ дақиқа интизор мешавад. Ин фосила аз ҷониби парчам муқаррар карда мешавад уфуқӣ-pod-autoscaler-поён-таъхир.
  • HPA бо объектҳои ҷойгиркунӣ беҳтар кор мекунад, на контроллерҳои такрорӣ. Миқёси автоматии уфуқӣ бо навсозии чархиш, ки мустақиман контроллерҳои такрориро идора мекунад, мувофиқат намекунад. Ҳангоми ҷойгиркунӣ, шумораи репликаҳо мустақиман аз объектҳои ҷойгиркунӣ вобаста аст.

Автомасштабкунии амудии қуттиҳо

Миқёси автоматии амудӣ (VPA) вақти бештари (ё камтар) CPU ё хотираро ба қуттиҳои мавҷуда ҷудо мекунад. Муносиб барои подкастҳои давлатӣ ё бешаҳрвандӣ, аммо асосан барои хидматҳои давлатӣ пешбинӣ шудааст. Аммо, шумо инчунин метавонед VPA-ро барои модулҳои бешаҳрвандӣ истифода баред, агар ба шумо лозим ояд, ки миқдори захираҳои аввалан ҷудошударо ба таври худкор танзим кунед.

VPA инчунин ба рӯйдодҳои OOM (аз хотира) ҷавоб медиҳад. Тағир додани вақти CPU ва хотира аз нав оғоз кардани подкҳоро талаб мекунад. Ҳангоми аз нав оғоз кардан, VPA буҷаи тақсимотро эҳтиром мекунад (буҷети тақсимоти pods, PDB) барои кафолат додани шумораи ҳадди ақали зарурии модулҳо.

Шумо метавонед захираҳои ҳадди ақал ва ҳадди аксарро барои ҳар як модул муқаррар кунед. Ҳамин тариқ, шумо метавонед ҳадди ниҳоии хотираи ҷудошударо то 8 ГБ маҳдуд кунед. Ин муфид аст, агар гиреҳҳои ҷорӣ бешубҳа беш аз 8 ГБ хотираро барои як контейнер ҷудо карда натавонанд. Мушаххасоти муфассал ва механизми корӣ дар тавсиф карда шудаанд Вики расмии VPA.

Илова бар ин, VPA дорои функсияи ҷолиби тавсия (VPA Recommender). Он истифодаи захираҳо ва рӯйдодҳои OOM-и ҳама модулҳоро назорат мекунад, то арзишҳои нави хотира ва вақти CPU дар асоси алгоритми интеллектуалӣ дар асоси ченакҳои таърихӣ пешниҳод кунанд. Инчунин API мавҷуд аст, ки дастаки подкалларо мегирад ва арзишҳои манбаи пешниҳодшударо бармегардонад.

Бояд қайд кард, ки VPA Recommender захираҳои "лимити" -ро пайгирӣ намекунад. Ин метавонад боиси монополизатсияи захираҳои модул дар дохили гиреҳҳо гардад. Беҳтар аст, ки маҳдудиятро дар сатҳи фазо муқаррар кунед, то аз хотираи азим ё истеъмоли CPU канорагирӣ кунед.

Нақшаи амалиёти VPA дар сатҳи баланд:

  1. VPA пайваста арзишҳои метрии ҳангоми насб муайяншударо дар фосилаи пешфарз 10 сония тафтиш мекунад.
  2. Агар ба ҳадди муқарраршуда расида бошад, VPA кӯшиш мекунад, ки миқдори захираҳои ҷудошударо тағир диҳад.
  3. VPA шумораи захираҳоро дар дохили контролери густариш/репликатсия навсозӣ мекунад.
  4. Вақте ки модулҳо бозоғоз мешаванд, ҳамаи захираҳои нав ба мисолҳои сохташуда истифода мешаванд.

Се сатҳи автоматизатсия дар Кубернетес: Чӣ тавр онҳоро самаранок истифода бурдан мумкин аст
VPA миқдори зарурии захираҳоро илова мекунад

Ҳангоми истифодаи VPA, лутфан нуктаҳои зеринро дар хотир нигоҳ доред:

  • Миқёссозӣ бозоғозкунии ҳатмии подкастро талаб мекунад. Ин барои пешгирӣ кардани амалиёти ноустувор пас аз ворид кардани тағирот зарур аст. Барои эътимоднокӣ, модулҳо аз нав оғоз карда мешаванд ва дар гиреҳҳо дар асоси захираҳои нав ҷудо карда мешаванд.
  • VPA ва HPA то ҳол бо ҳамдигар мувофиқ нестанд ва наметавонанд дар як қуттӣ кор кунанд. Агар шумо ҳарду механизми миқёсро дар як кластер истифода баред, боварӣ ҳосил кунед, ки танзимоти шумо аз фаъол шудани онҳо дар ҳамон объектҳо пешгирӣ мекунанд.
  • VPA дархостҳои контейнерро барои захираҳо танҳо дар асоси истифодаи гузашта ва ҷорӣ танзим мекунад. Он маҳдудияти истифодаи захираҳоро муқаррар намекунад. Мушкилот бо дуруст кор накардани барномаҳо ва сар кардани захираҳои бештар ва бештар ба вуҷуд омада метавонанд, ин боиси он мегардад, ки Kubernetes ин подкалларо хомӯш кунад.
  • VPA ҳанӯз дар марҳилаи аввали рушд аст. Омода бошед, ки система метавонад дар ояндаи наздик ба баъзе тағйирот ворид шавад. Шумо метавонед дар бораи маҳдудиятҳои маълум и планхои тараккиёт. Ҳамин тариқ, татбиқи амалиёти муштараки VPA ва HPA, инчунин ҷойгиркунии модулҳо дар баробари сиёсати амудии автоматӣ барои онҳо пешбинӣ шудааст (масалан, тамғаи махсуси "VPA-ро талаб мекунад").

Миқёси худкори кластери Kubernetes

Cluster Autoscaler (CA) шумораи гиреҳҳоро дар асоси шумораи подкҳои интизорӣ тағйир медиҳад. Система мунтазам модулҳои интизориро тафтиш мекунад ва андозаи кластерро зиёд мекунад, агар захираҳои бештар лозим бошанд ва кластер аз ҳудуди муқарраршуда зиёд набошад. CA бо провайдери хидматрасонии абрӣ муошират мекунад, аз он гиреҳҳои иловагиро талаб мекунад ё гиреҳҳои бекоршударо мебарорад. Аввалин версияи дастраси CA дар Kubernetes 1.8 муаррифӣ карда шуд.

Нақшаи сатҳи баланди амалиёти SA:

  1. CA модулҳоро дар ҳолати интизорӣ бо фосилаи пешфарз 10 сония тафтиш мекунад.
  2. Агар як ё якчанд подкҳо дар ҳолати интизорӣ қарор дошта бошанд, зеро кластер барои ҷудо кардани онҳо захираҳои кофӣ надошта бошад, он кӯшиш мекунад, ки як ё якчанд гиреҳҳои иловагӣ таъмин кунад.
  3. Вақте ки провайдери хидматрасонии абрӣ гиреҳи лозимиро ҷудо мекунад, он ба кластер пайваст мешавад ва омода аст, ки ба поддонҳо хидмат кунад.
  4. Нақшасози Kubernetes подделҳои интизориро ба гиреҳи нав тақсим мекунад. Агар пас аз ин баъзе модулҳо дар ҳолати интизорӣ боқӣ монанд, раванд такрор мешавад ва гиреҳҳои нав ба кластер илова карда мешаванд.

Се сатҳи автоматизатсия дар Кубернетес: Чӣ тавр онҳоро самаранок истифода бурдан мумкин аст
Таъмини худкори гиреҳҳои кластер дар абр

Ҳангоми истифодаи CA, чизҳои зеринро ба назар гиред:

  • CA кафолат медиҳад, ки ҳамаи подкҳо дар кластер, новобаста аз сарбории CPU ҷой доранд. Он инчунин кӯшиш мекунад, ки дар кластер гиреҳҳои нолозим вуҷуд надошта бошанд.
  • CA зарурати миқёсро пас аз тақрибан 30 сония қайд мекунад.
  • Вақте ки гиреҳ дигар лозим нест, CA пеш аз васеъ кардани миқёси система 10 дақиқа интизор мешавад.
  • Системаи автоматӣ консепсияи васеъкуниро дорад. Инҳо стратегияҳои гуногун барои интихоби гурӯҳи гиреҳҳо мебошанд, ки ба онҳо гиреҳҳои нав илова карда мешаванд.
  • Опсияро бо масъулият истифода баред cluster-autoscaler.kubernetes.io/safe-to-evict (true). Агар шумо подкҳои зиёде насб кунед ё агар бисёре аз онҳо дар тамоми гиреҳҳо пароканда бошанд, шумо қобилияти васеъ кардани кластерро аз даст медиҳед.
  • Истифода кунед Budgets PodDisruptionбарои пешгирӣ кардани ҳазф кардани қуттиҳо, ки метавонад қисмҳои замимаи шуморо пурра вайрон кунад.

Чӣ тавр autoscalers Kubernetes бо ҳамдигар ҳамкорӣ мекунанд

Барои ҳамоҳангии комил, автоматизатсия бояд ҳам дар сатҳи pod (HPA/VPA) ва ҳам дар сатҳи кластер татбиқ карда шавад. Онҳо бо ҳамдигар нисбатан содда муносибат мекунанд:

  1. HPAs ё VPAs нусхабардорӣ ё захираҳое, ки ба подкастҳои мавҷуда ҷудо карда шудаанд, навсозӣ мекунанд.
  2. Агар барои миқёси банақшагирифташуда гиреҳҳои кофӣ мавҷуд набошанд, CA мавҷудияти подкҳоро дар ҳолати интизорӣ пай мебарад.
  3. CA гиреҳҳои навро ҷудо мекунад.
  4. Модулҳо ба гиреҳҳои нав тақсим карда мешаванд.

Се сатҳи автоматизатсия дар Кубернетес: Чӣ тавр онҳоро самаранок истифода бурдан мумкин аст
Системаи муштараки васеъкунии Кубернетес

Хатогиҳои маъмул дар автоматикунонии Kubernetes

Якчанд мушкилоти умумӣ вуҷуд доранд, ки таҳиягарон ҳангоми кӯшиши татбиқи автоматикунонӣ дучор меоянд.

HPA ва VPA аз ченакҳо ва баъзе маълумоти таърихӣ вобастаанд. Агар захираҳои нокифоя ҷудо карда шаванд, модулҳо кам карда мешаванд ва наметавонанд ченакҳоро тавлид кунанд. Дар ин ҳолат, autoscaling ҳеҷ гоҳ рӯй нахоҳад дод.

Худи амалиёти миқёс ҳассос ба вақт аст. Мо мехоҳем, ки модулҳо ва кластер зуд васеъ шаванд - пеш аз он ки корбарон ягон мушкилот ё нокомиро пайхас кунанд. Аз ин рӯ, вақти миқёси миёна барои pods ва кластер бояд ба назар гирифта шавад.

Сенарияи идеалӣ - 4 дақиқа:

  1. 30 сония. Навсозии ченакҳои мақсаднок: 30−60 сония.
  2. 30 сония. HPA арзишҳои метриро тафтиш мекунад: 30 сония.
  3. Камтар аз 2 сония. Подҳо сохта мешаванд ва ба ҳолати интизорӣ мегузаранд: 1 сония.
  4. Камтар аз 2 сония. CA модулҳои интизориро мебинад ва зангҳоро ба гиреҳҳои таъминот мефиристад: 1 сония.
  5. 3 дақиқа. Провайдери абр гиреҳҳоро ҷудо мекунад. K8s то омода шудани онҳо интизор мешавад: то 10 дақиқа (вобаста ба якчанд омилҳо).

Сенарияи бадтарин (воқеӣтар) - 12 дақиқа:

  1. 30 сония. Метрикҳои мақсаднокро навсозӣ кунед.
  2. 30 сония. HPA арзишҳои метриро тафтиш мекунад.
  3. Камтар аз 2 сония. Подҳо сохта мешаванд ва ба ҳолати интизорӣ дохил мешаванд.
  4. Камтар аз 2 сония. CA модулҳои интизориро мебинад ва барои таъмини гиреҳҳо занг мезанад.
  5. 10 дақиқа. Провайдери абр гиреҳҳоро ҷудо мекунад. K8s интизор мешаванд, то омода шаванд. Вақти интизорӣ аз якчанд омилҳо вобаста аст, ба монанди таъхири фурӯшанда, таъхири OS ва асбобҳои дастгирӣ.

Механизмҳои миқёси провайдерҳои абрро бо CA-и мо омехта накунед. Охирин дар дохили кластери Kubernetes кор мекунад, дар ҳоле ки муҳаррики провайдери абрӣ дар асоси тақсимоти гиреҳ кор мекунад. Он намедонад, ки бо pods ё барномаи шумо чӣ рӯй медиҳад. Ин системаҳо параллел кор мекунанд.

Чӣ гуна миқёсро дар Кубернетес идора кардан мумкин аст

  1. Kubernetes як воситаи идоракунии захираҳо ва оркестр мебошад. Амалиёт барои идоракунии поддонҳо ва захираҳои кластер як марҳилаи калидӣ дар азхудкунии Kubernetes мебошанд.
  2. Мантиқи миқёспазирии поддонҳоро бо назардошти HPA ва VPA фаҳмед.
  3. CA бояд танҳо дар сурате истифода шавад, ки шумо эҳтиёҷоти кӯзаҳо ва контейнерҳои худро хуб фаҳмед.
  4. Барои ба таври оптималӣ танзим кардани кластер, шумо бояд фаҳмед, ки чӣ гуна системаҳои миқёси гуногун якҷоя кор мекунанд.
  5. Ҳангоми ҳисоб кардани вақти миқёс, сенарияҳои бадтарин ва беҳтаринро дар хотир нигоҳ доред.

Манбаъ: will.com

Илова Эзоҳ