VK Cloud logo

Кластер түйіндерін масштабтау

Масштабтау кластерді жұмыс жүктемелерінің (workloads) өзгеретін қажеттіліктеріне бейімдеуге мүмкіндік береді.

Масштабтау түрлері

Масштабтаудың екі түрі қолданылады:

  • Тік масштабтау: кластердің master- және worker-түйіндері пайдаланатын виртуалды машина қалыптары өзгереді. Осылайша түйіндер санына әсер етпей, кластердің есептеу ресурстарын басқаруға болады.

    Worker-түйіндерді масштабтау worker-түйіндер тобы аясында Cluster Autoscaler көмегімен орындалады.

  • Көлденең масштабтау: жекелеген түйіндер тобы аясындағы worker-түйіндер саны өзгереді. Осылайша түйіндер пайдаланатын виртуалды машина қалыптарына әсер етпей, кластердің есептеу ресурстарын басқаруға болады.

Екі түрдегі масштабтауды да қолмен орындауға болады, сондай-ақ автоматты масштабтау жұмыс істейді.

Автоматты масштабтау

Тік масштабтау

Master-түйіндердің тік автоматты масштабталуы барлық кластерлер үшін қолданылады, оны өшіруге болмайды.

Автоматты масштабтау агенті CPU және RAM бойынша master-түйін жүктемесін бағалап, келесі шектік мәндерді қадағалайды:

Шектік мән

Автомасштабтаудың әрекеті

CPU жүктемесі 60 секунд бойы 80%-дан асады

Егер шектердің кемінде бірі асса, Cloud Containers сервисіне master-түйіннің ВМ қалыбын өзгерту туралы сұрау жіберіледі:

  • CPU буыны өзгермейді.
  • CPU ядроларының саны екіге артады.
  • RAM көлемі тек CPU санын арттыру үшін қажет болған жағдайда ғана өзгереді.

Мысалдар:

  • STD2-2-6STD2-4-6.
  • STD2-6-6STD2-8-8.
  • STD3-2-6STD3-4-6.

CPU жүктемесі 5 минут бойы 60%-дан асады

RAM жүктемесі 60 секунд бойы 90%-дан асады

Cloud Containers сервисіне master-түйіннің ВМ қалыбын өзгерту туралы сұрау жіберіледі:

  • CPU буыны өзгермейді.
  • CPU ядроларының саны тек RAM көлемін арттыру үшін қажет болған жағдайда ғана өзгереді.
  • RAM көлемі келесі ретпен бір қадамға өзгереді: 6, 8, 12, 16, 20, 24, 32, 36, 48.

Мысалдар:

  • STD2-2-6STD2-2-8.
  • STD2-2-8STD2-4-12.
  • STD3-2-6STD3-2-8.

Master-түйіннің ВМ қалыбын CPU мен RAM мөлшері аз қалыпқа тек қолмен.

Көлденең масштабтау

Түйіндер тобы (autoscaling) үшін көлденең автоматты масштабтау пайдаланушы арқылы бапталады. Топтағы worker-түйіндер саны жұмыс жүктемесінің қажеттіліктеріне қарай автоматты түрде реттеледі. Бұл механизм есептеу қуаттарына кететін шығынды 60%-ға дейін үнемдеуге мүмкіндік береді.

Kubernetes кластерін масштабтау туралы хабарландыру

Cloud Alerting сервисі кластер түйіндерін масштабтауға байланысты келесі оқиғалар бойынша хабарландыруды баптауға мүмкіндік береді:

  • kubernetes_master_vscale — кластердің master-түйінін тік масштабтау;
  • kubernetes_worker_vscale — түйіндер тобын тік масштабтау;
  • kubernetes_worker_hscale — түйіндер тобын көлденең масштабтау.

Хабарландырулар уақтылы келуі үшін іске қосылу шарты больше 0, ал салыстыру аралығы 1 минута болуы керек.

Қолданыстағы шектеулер

Тік масштабтау кезінде қолжетімділікті қамтамасыз ету

Кластердің кез келген түйінін тік масштабтау кезінде түйіндер пайдаланатын виртуалды машиналар бірізді түрде қайта іске қосылады. Бұл виртуалды машинаның жаңа қалыбын қолдану үшін қажет. Сондықтан масштабтау процесі кластер API-інің де, кластерде орналастырылған жұмыс жүктемелерінің де қолжетімділігіне әсер етеді:

  • Егер кластер істен шығуға төзімді болмаса және бір ғана master-түйіннен тұрса, онда Kubernetes API масштабтау аяқталғанға дейін қолжетімсіз болады.

  • Егер түйіндер тобында бір ғана worker-түйін болса, онда онда орналастырылған жұмыс жүктемесі масштабтау аяқталғанға дейін қолжетімсіз болады.

  • Егер түйіндер тобында бірнеше worker-түйін болса, онда оларда орналастырылған жұмыс жүктемесі жүктеме үшін репликация бапталмаған немесе дұрыс бапталмаған жағдайда масштабтау аяқталғанға дейін қолжетімсіз болады.

    Мысалы, егер барлық репликаларды бір worker-түйінде орналастырсаңыз, ол қайта іске қосылғанда жұмыс жүктемесі қолжетімсіз болады, тіпті түйіндер тобында басқа worker-түйіндер болса да.

    Жұмыс жүктемесі репликаларының бір бөлігі worker-түйіндер қайта іске қосылған кезде қолжетімді болатындай етіп репликацияны баптаңыз.

  • Егер түйіндер тобын масштабтағаннан кейін жұмыс жүктемесіне есептеу ресурстары жеткіліксіз болса, онда бұл жүктеме дұрыс жұмыс істемеуі немесе қолжетімсіз болуы мүмкін.

    Масштабты азайту кезінде түйіндер тобындағы қорытынды ресурстар көлемі жеткілікті болуын қадағалаңыз.

Ресурстарды алдын ала резервтеу

Кластерде ресурстар таусылған кезде автоматты масштабтау агенті (Cluster Autoscaler) жаңа торап жасап, оны кластерге қосады. Бұл 4–7 минутты алады, осы уақыт ішінде қолданбаңыз трафикке шамадан тыс жүктелуі мүмкін.

Масштабтау уақытын қысқарту үшін ресурстарды алдын ала бөлуді (overprovisioning) баптаңыз. Бұл жоғары басымдықтағы тапсырмаларды күту кезінде тораптарда ресурстарды резервтеуге мүмкіндік береді.

Ресурстарды бөлуді баптау нұсқаулығы Топтағы түйіндерді резервтеу бөлімінде келтірілген.