Кластер түйіндерін масштабтау
Масштабтау кластерді жұмыс жүктемелерінің (workloads) өзгеретін қажеттіліктеріне бейімдеуге мүмкіндік береді.
Масштабтаудың екі түрі қолданылады:
-
Тік масштабтау: кластердің master- және worker-түйіндері пайдаланатын виртуалды машина қалыптары өзгереді. Осылайша түйіндер санына әсер етпей, кластердің есептеу ресурстарын басқаруға болады.
Worker-түйіндерді масштабтау worker-түйіндер тобы аясында Cluster Autoscaler көмегімен орындалады.
-
Көлденең масштабтау: жекелеген түйіндер тобы аясындағы worker-түйіндер саны өзгереді. Осылайша түйіндер пайдаланатын виртуалды машина қалыптарына әсер етпей, кластердің есептеу ресурстарын басқаруға болады.
Екі түрдегі масштабтауды да қолмен орындауға болады, сондай-ақ автоматты масштабтау жұмыс істейді.
Master-түйіндердің тік автоматты масштабталуы барлық кластерлер үшін қолданылады, оны өшіруге болмайды.
Автоматты масштабтау агенті CPU және RAM бойынша master-түйін жүктемесін бағалап, келесі шектік мәндерді қадағалайды:
Шектік мән | Автомасштабтаудың әрекеті |
|---|---|
CPU жүктемесі 60 секунд бойы 80%-дан асады | Егер шектердің кемінде бірі асса, Cloud Containers сервисіне master-түйіннің ВМ қалыбын өзгерту туралы сұрау жіберіледі:
Мысалдар:
|
CPU жүктемесі 5 минут бойы 60%-дан асады | |
RAM жүктемесі 60 секунд бойы 90%-дан асады | Cloud Containers сервисіне master-түйіннің ВМ қалыбын өзгерту туралы сұрау жіберіледі:
Мысалдар:
|
Master-түйіннің ВМ қалыбын CPU мен RAM мөлшері аз қалыпқа тек қолмен.
Түйіндер тобы (autoscaling) үшін көлденең автоматты масштабтау пайдаланушы арқылы бапталады. Топтағы worker-түйіндер саны жұмыс жүктемесінің қажеттіліктеріне қарай автоматты түрде реттеледі. Бұл механизм есептеу қуаттарына кететін шығынды 60%-ға дейін үнемдеуге мүмкіндік береді.
Cloud Alerting сервисі кластер түйіндерін масштабтауға байланысты келесі оқиғалар бойынша хабарландыруды баптауға мүмкіндік береді:
kubernetes_master_vscale— кластердің master-түйінін тік масштабтау;kubernetes_worker_vscale— түйіндер тобын тік масштабтау;kubernetes_worker_hscale— түйіндер тобын көлденең масштабтау.
Хабарландырулар уақтылы келуі үшін іске қосылу шарты больше 0, ал салыстыру аралығы 1 минута болуы керек.
- Тік масштабтау мүмкіндіктері қолданыстағы квоталармен және қолжетімді виртуалды машина қалыптарымен шектеледі.
- Көлденең масштабтау мүмкіндіктері қолданыстағы квоталармен және жекелеген түйіндер тобындағы worker-түйіндер санының шегімен шектеледі: 1-ден 500 түйінге дейін.
- Егер автоматты масштабтау бапталған болса, көлденең масштабтауды қолмен орындау мүмкін емес. Масштабтауды қолмен орындау үшін автоматты масштабтауды өшіріңіз.
Кластердің кез келген түйінін тік масштабтау кезінде түйіндер пайдаланатын виртуалды машиналар бірізді түрде қайта іске қосылады. Бұл виртуалды машинаның жаңа қалыбын қолдану үшін қажет. Сондықтан масштабтау процесі кластер API-інің де, кластерде орналастырылған жұмыс жүктемелерінің де қолжетімділігіне әсер етеді:
-
Егер кластер істен шығуға төзімді болмаса және бір ғана master-түйіннен тұрса, онда Kubernetes API масштабтау аяқталғанға дейін қолжетімсіз болады.
-
Егер түйіндер тобында бір ғана worker-түйін болса, онда онда орналастырылған жұмыс жүктемесі масштабтау аяқталғанға дейін қолжетімсіз болады.
-
Егер түйіндер тобында бірнеше worker-түйін болса, онда оларда орналастырылған жұмыс жүктемесі жүктеме үшін репликация бапталмаған немесе дұрыс бапталмаған жағдайда масштабтау аяқталғанға дейін қолжетімсіз болады.
Мысалы, егер барлық репликаларды бір worker-түйінде орналастырсаңыз, ол қайта іске қосылғанда жұмыс жүктемесі қолжетімсіз болады, тіпті түйіндер тобында басқа worker-түйіндер болса да.
Жұмыс жүктемесі репликаларының бір бөлігі worker-түйіндер қайта іске қосылған кезде қолжетімді болатындай етіп репликацияны баптаңыз.
-
Егер түйіндер тобын масштабтағаннан кейін жұмыс жүктемесіне есептеу ресурстары жеткіліксіз болса, онда бұл жүктеме дұрыс жұмыс істемеуі немесе қолжетімсіз болуы мүмкін.
Масштабты азайту кезінде түйіндер тобындағы қорытынды ресурстар көлемі жеткілікті болуын қадағалаңыз.
Кластерде ресурстар таусылған кезде автоматты масштабтау агенті (Cluster Autoscaler) жаңа торап жасап, оны кластерге қосады. Бұл 4–7 минутты алады, осы уақыт ішінде қолданбаңыз трафикке шамадан тыс жүктелуі мүмкін.
Масштабтау уақытын қысқарту үшін ресурстарды алдын ала бөлуді (overprovisioning) баптаңыз. Бұл жоғары басымдықтағы тапсырмаларды күту кезінде тораптарда ресурстарды резервтеуге мүмкіндік береді.
Ресурстарды бөлуді баптау нұсқаулығы Топтағы түйіндерді резервтеу бөлімінде келтірілген.