ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€!

ΠœΡ‹ прСдставляСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Exness. Π Π°Π½Π΅Π΅ наши ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΡƒΠΆΠ΅ писали ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΏΡ€ΠΎ Production-ready images for k8s. БСгодня ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ сСрвисов Π² Kubernetes.

K8S Multicluster Journey

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ†ΠΈΡ„Ρ€ для большСго понимания Ρ‚ΠΎΠ³ΠΎ, ΠΎ Ρ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ Ρ€Π΅Ρ‡ΡŒ:

  • Наш ΠΎΡ‚Π΄Π΅Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ это 100+ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΠΎΠ»Π΅Π΅ 10 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ с самодостаточными процСссами QA, DevOps ΠΈ Scrum. Π‘Ρ‚Π΅ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” Python, PHP, C++, Java ΠΈ Golang.Β 
  • Π Π°Π·ΠΌΠ΅Ρ€ тСстовой ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΎΠΉ срСды— ΠΎΠΊΠΎΠ»ΠΎ 2000 ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ. Находятся ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Rancher v1.6 Π½Π° своСй Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ VMware.Β 

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ

Как говорится, Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ Π²Π΅Ρ‡Π½ΠΎ ΠΏΠΎΠ΄ Π»ΡƒΠ½ΠΎΠΉ, ΠΈ Rancher ΡƒΠΆΠ΅ достаточно Π΄Π°Π²Π½ΠΎ объявил ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ вСрсии 1.6. Π”Π°, ΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π·Π° Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π΅Π³ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π½ΠΎ всС Ρ‡Π°Ρ‰Π΅ ΠΌΡ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ исправлСны. Π’Π°ΠΊΠΆΠ΅ Rancher 1.6 ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°ΠΊΠΎΡΡ‚Π΅Π½Π΅Π»ΡƒΡŽ систСму Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π°Π², Π³Π΄Π΅ Ρ‚Ρ‹ Π»ΠΈΠ±ΠΎ моТСшь ΠΏΠΎΡ‡Ρ‚ΠΈ всС, Π»ΠΈΠ±ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ.

БобствСнная виртуализация Ρ…ΠΎΡ‚ΡŒ ΠΈ прСдоставляла больший ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΡ… Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, Π½ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π»Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ расходы, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π±Ρ‹Π»ΠΎ ΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ постоянном ростС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, количСствС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π½ΠΈΠΌ.

Нам Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ стандартам IaC ΠΈ ΠΏΡ€ΠΈ нСобходимости ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ мощности быстро, Π² любой гСографичСской Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€ Π»ΠΎΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстро ΠΎΡ‚ Π½ΠΈΡ… ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ шаги

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° соврСмСнныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ быстрый Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ расходы Π½Π° взаимодСйствиС с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ мощности.Β 
Β 
ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ Π½Π°ΠΌ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ β€” это Kubernetes, Π½ΠΎ ΠΌΡ‹ Π½Π΅ стали Π³ΠΎΡ€ΡΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ нСбольшоС исслСдованиС Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ вСрности Π²Ρ‹Π±ΠΎΡ€Π°. ΠœΡ‹ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ opensource Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΈ Π² нСчСстной схваткС Π±Π΅Π·ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΎΡ‡Π½ΠΎ ΠΏΠΎΠ±Π΅Π΄ΠΈΠ» Kubernetes.Β Β 

Π”Π°Π»Π΅Π΅ стал вопрос Π²Ρ‹Π±ΠΎΡ€Π° инструмСнта для создания кластСров. ΠœΡ‹ сравнили самыС популярныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: kops, kubespray, kubeadm.

Для старта kubeadm показался Π½Π°ΠΌ слишком слоТным ΠΏΡƒΡ‚Π΅ΠΌ, скорСС, Π½Π΅ΠΊΠΈΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚Π΅Π»Π΅ΠΌ «вСлосипСда», Π° Ρƒ kops Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ гибкости.

И ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»Π΅ΠΌ Π²Ρ‹ΡˆΠ΅Π»:

K8S Multicluster Journey

ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ экспСримСнты Π½Π° собствСнной Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ AWS, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ нашСго ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° управлСния рСсурсами, Π³Π΄Π΅ всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ «кластСр». И Π²ΠΎΡ‚ Ρƒ нас появился ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ кластСр Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² 10 Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин, ΠΏΠ°Ρ€Π° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находится Π² AWS. ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΡƒΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ всС стало Β«Ρ…ΠΎΡ€ΠΎΡˆΠΎΒ», ΠΈ рассказ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ, но…

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Ansible β€” Ρ‚ΠΎ, Π½Π° Ρ‡Π΅ΠΌ построСн kubespray, это Π½Π΅ Ρ‚ΠΎΡ‚ инструмСнт ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ IaC: ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅/Π²Ρ‹Π²ΠΎΠ΄Π΅ Π½ΠΎΠ΄ ΠΈΠ· эксплуатации постоянно Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ шло Π½Π΅ Ρ‚Π°ΠΊ, ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, Π° ΠΏΡ€ΠΈ использовании Ρ€Π°Π·Π½Ρ‹Ρ… ОБ ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊ Π²Π΅Π» сСбя ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π‘ ростом количСства ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π½ΠΎΠ΄ Π² кластСрС ΠΌΡ‹ стали Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊ выполнялся всС дольшС ΠΈ дольшС, Π² ΠΈΡ‚ΠΎΠ³Π΅, наш Ρ€Π΅ΠΊΠΎΡ€Π΄ 3,5 часа, Π° ваш? πŸ™‚

И Π²Ρ€ΠΎΠ΄Π΅ ΠΊΠ°ΠΊ kubespray это просто Ansible, ΠΈ всС понятно Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Π½ΠΎ:

K8S Multicluster Journey

Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡƒΡ‚ΠΈ стояла Π·Π°Π΄Π°Ρ‡Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ мощности Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² AWS ΠΈ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это часто Π±Ρ‹Π²Π°Π΅Ρ‚, трСбования измСнились.
Β 
K8S Multicluster JourneyK8S Multicluster Journey

Π’ свСтС этого стало понятно, Ρ‡Ρ‚ΠΎ наш старый ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ объСдинСния рСсурсов Π² ΠΎΠ΄Π½Ρƒ систСму оркСстрации Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ» β€” Π² случаС, ΠΊΠΎΠ³Π΄Π° кластСры сильно ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈ находятся ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ².Β 

Π”Π°Π»ΡŒΡˆΠ΅ β€” большС. Когда всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ кластСра, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сСрвисы с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ установлСнными NodeSelector ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΈΠ»Π΅Ρ‚Π΅Ρ‚ΡŒ Π½Π° Β«Ρ‡ΡƒΠΆΠΎΠΉΒ» хост Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Ρ‚Π°ΠΌ ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСсурсы, Π° Π² случаС выставлСния taintΒ  β€” появлялись постоянныС обращСния ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ сСрвис Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½Π΅ распрСдСляСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ·-Π·Π° чСловСчСского Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ оказался расчСт стоимости, особСнно учитывая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ распрСдСлСнии сСрвисов ΠΏΠΎ Π½ΠΎΠ΄Π°ΠΌ.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ историСй шла Π²Ρ‹Π΄Π°Ρ‡Π° ΠΏΡ€Π°Π² сотрудникам: каТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ…ΠΎΡ‚Π΅Π»Π° Π±Ρ‹Ρ‚ΡŒ Β«Π²ΠΎ Π³Π»Π°Π²Π΅Β» кластСра ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ коллапс, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² основном Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° нСзависимы.

Как Π±Ρ‹Ρ‚ΡŒ?

Учитывая Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΠΈ поТСлания ΠΊΠΎΠΌΠ°Π½Π΄ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ нСзависимыми, ΠΌΡ‹ сдСлали простой Π²Ρ‹Π²ΠΎΠ΄: ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° β€” ΠΎΠ΄ΠΈΠ½ кластСр.Β 

Π’Π°ΠΊ Ρƒ нас появился Π²Ρ‚ΠΎΡ€ΠΎΠΉ:

K8S Multicluster Journey

А ΠΏΠΎΡ‚ΠΎΠΌ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ кластСр:Β 

K8S Multicluster Journey

Π’ΡƒΡ‚ ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ: допустим, Ρ‡Π΅Ρ€Π΅Π· Π³ΠΎΠ΄ Ρƒ Π½Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ ΠΎΠ΄ΠΈΠ½ кластСр? Π’ Ρ€Π°Π·Π½Ρ‹Ρ… гСографичСских Π·ΠΎΠ½Π°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ²?Β  А ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· Π½ΠΈΡ… Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстро Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ кластСр для ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ тСстов.Β 

K8S Multicluster Journey

Наступил Π±Ρ‹ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Π΅Ρ! Π­Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ MultiKubernetes, получаСтся.Β 

ΠŸΡ€ΠΈ этом, всСм Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС эти кластСры, ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ доступом ΠΊ Π½ΠΈΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ старыС ΠΈΠ· эксплуатации Π±Π΅Π· Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°.

Π‘ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π°Ρ‡Π°Π»Π° нашСго ΠΏΡƒΡ‚ΠΈ Π² ΠΌΠΈΡ€Π΅ ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΠ° ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΈ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ доступных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Оказалось, Ρ‡Ρ‚ΠΎ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ ΠΎΠ½ΠΎ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ β€” Rancher 2.2.

K8S Multicluster Journey

На ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС Π½Π°ΡˆΠΈΡ… исслСдований Rancher Labs ΡƒΠΆΠ΅ сдСлали ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· вСрсии 2, Π½ΠΎΒ Ρ…ΠΎΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ быстро ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ, запустив ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π±Π΅Π· Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй с ΠΏΠ°Ρ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ HELM Chart, ΠΎΠ½Π° Π½Π°ΠΌ показалось сырой, ΠΈ ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π»ΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π½Π° это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π±ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ быстро забросят. Π‘Π°ΠΌΠ° ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° кластСр = ΠΊΠ»ΠΈΠΊΠΈ Π² UI Π½Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ»Π°,Β ΠΈ ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊ RKE, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это достаточно ΡƒΠ·ΠΊΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ инструмСнт.Β 

ВСрсия Rancher 2.2 ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π»Π° Π±ΠΎΠ»Π΅Π΅ работоспособный Π²ΠΈΠ΄ ΠΈ Π²ΠΊΡƒΠΏΠ΅ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ ΠΎΠ±Π»Π°Π΄Π°Π»Π° ΠΊΡƒΡ‡Π΅ΠΉ интСрСсных возмоТностСй ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ интСграция со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ внСшними ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ, Сдиная Ρ‚ΠΎΡ‡ΠΊΠ° дистрибуции ΠΏΡ€Π°Π² ΠΈ kubeconfig Ρ„Π°ΠΉΠ»ΠΎΠ², запуск ΠΎΠ±Ρ€Π°Π·Π° kubectl с Ρ‚Π²ΠΎΠΈΠΌΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π² UI, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ нСймспСйсы aka ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹.Β 

Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠΊΡ€ΡƒΠ³ Rancher 2 ΡƒΠΆΠ΅ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΊΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ, ΠΈ Π±Ρ‹Π» создан ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ HashiCorp Terraform для управлСния ΠΈΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³ Π½Π°ΠΌ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ.

Π§Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρƒ нас получился ΠΎΠ΄ΠΈΠ½ малСнький кластСр, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Rancher, доступный всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ кластСрам, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ кластСров с Π½ΠΈΠΌ связанных, доступ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ просто, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² ldap ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΎΠ½ находится ΠΈ рСсурсы ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ gitlab-ci ΠΈ Terraform Π±Ρ‹Π»Π° создана систСма, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ кластСр любой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°Ρ… ΠΈΠ»ΠΈ нашСй собствСнной инфраструктурС ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ Rancher. ВсС это Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π² стилС IaC, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ кластСр описан Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ, Π° Π΅Π³ΠΎ состояниС вСрсионируСтся. ΠŸΡ€ΠΈ этом Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ свою ΠΊΠ°ΡΡ‚ΠΎΠΌΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ для инстансов, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ повторяСмости ΠΊΠΎΠ΄Π°.

K8S Multicluster Journey

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, нашС ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½ΠΎ ΠΈ Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсных Π·Π°Π΄Π°Ρ‡ Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ Сдиная Ρ‚ΠΎΡ‡ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΠΎΠ³Π°ΠΌΠΈ ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌΠΈ Π»ΡŽΠ±Ρ‹Ρ… кластСров, service mesh, gitops для управлСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°ΠΌΠΈ Π² ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. НадССмся, Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсСн наш ΠΎΠΏΡ‹Ρ‚!Β 

Π‘Ρ‚Π°Ρ‚ΡŒΡŽ писали А. Антипов, А. Π“Π°Π½ΡƒΡˆ, Platform Engineers.Β 

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com