Сизге Kubernetes керек эмес болушу мүмкүн

Сизге Kubernetes керек эмес болушу мүмкүн
Скутерде отурган кыз. Иллюстрация Freepik, Nomad логотиби тартып Hashi Corp

Кубернетес - бул контейнер оркестринин 300 фунт горилласы. Бул дүйнөдөгү эң чоң контейнер системаларында иштейт, бирок кымбат.

Кичинекей командалар үчүн өзгөчө кымбат, бул көп колдоо убактысын жана тик окуу ийри сызыгын талап кылат. Бул биздин төрт кишиден турган команда үчүн өтө эле ашыкча чыгым. Ошентип, биз альтернатива издей баштадык - жана сүйүп калдык Nomad.

Эмне керек

Биздин команда бир катар жалпы аткарууну көзөмөлдөө жана талдоо кызматтарын колдойт: Go'до жазылган метрикалар үчүн API акыркы чекиттери, Prometheus экспорттору, Logstash сыяктуу лог талдоочулар жана Gollum, ошондой эле InfluxDB же Elasticsearch сыяктуу маалымат базалары. Бул кызматтардын ар бири өз контейнеринде иштейт. Бизге бардыгын иштетүү үчүн жөнөкөй система керек.

Биз контейнер оркестрине коюлган талаптардын тизмеси менен баштадык:

  • Көптөгөн машиналарда кызматтардын топтомун иштетүү.
  • Иштеп жаткан кызматтарга сереп салуу.
  • Кызматтардын ортосундагы байланыштар.
  • Кызмат иштебей калса, автоматтык түрдө өчүрүп күйгүзүү.
  • Чакан команда тарабынан инфраструктураны тейлөө.

Мындан тышкары, төмөнкү нерселер жакшы болот, бирок кошумчалар талап кылынбайт:

  • Мүмкүнчүлүктөрүнүн негизинде белгилөө машиналары (мисалы, оор киргизүү/чыгаруу кызматтары үчүн тез дисктери бар белгилөөчү машиналар).
  • Оркестрден көз карандысыз кызматтарды иштетүү мүмкүнчүлүгү (мисалы, иштеп чыгуу учурунда).
  • Конфигурацияларды жана сырларды бөлүшүү үчүн жалпы жер.
  • Өлчөмдөр жана журналдар үчүн акыркы чекит.

Эмне үчүн Kubernetes биз үчүн туура эмес

Кубернетес менен прототипти түзүп жатканда, биз көп таянган логиканын барган сайын татаал катмарларын кошуп жатканыбызды байкадык.

Мисал катары, Kubernetes аркылуу орнотулган кызмат конфигурацияларын колдойт ConfigMaps. Айрыкча, бир нече конфигурация файлдарын бириктиргенде же подкага кошумча кызматтарды кошкондо, бат эле чаташып кетишиңиз мүмкүн. Kubernetes (же туулга бул учурда) тынчсызданууларды бөлүү үчүн тышкы конфигурацияларды динамикалык түрдө ишке ашырууга мүмкүндүк берет. Бирок бул сиздин долбооруңуз менен Kubernetes ортосунда тыгыз, жашыруун байланышка алып келет. Бирок, Helm жана ConfigMaps кошумча опциялар, андыктан аларды колдонуунун кереги жок. Сиз жөн гана конфигурацияны Docker сүрөтүнө көчүрө аласыз. Бирок, бул жолго түшүп, кийин өкүнө турган керексиз абстракцияларды куруу азгырык.

Кошумчалай кетсек, Kubernetes экосистемасы тездик менен өнүгүп жатат. Алдыңкы тажрыйбалар жана акыркы куралдар менен кабардар болуу үчүн көп убакыт жана энергия талап кылынат. Кубектл, миникубе, кубеадм, руль, тиллер, копс, oc - тизме улана берет. Бул куралдардын баары сиз баштаганда керек эмес, бирок сизге эмне керек болорун билбейсиз, андыктан бардыгынан кабардар болушуңуз керек. Ушундан улам, окуу ийри сызыгы абдан тик.

Kubernetes качан колдонуу керек

Биздин компанияда көптөгөн адамдар Kubernetes колдонушат жана ага абдан ыраазы. Бул инстанцияларды колдоо үчүн ресурстары бар Google же Amazon башкарат.

Kubernetes менен келет укмуштуудай өзгөчөлүктөрү, бул масштабдагы контейнер оркестрин башкарууга ыңгайлуу кылат:

Сизге чындап эле бул функциялардын бардыгы керекпи деген суроо туулат. Сиз жөн гана абстракцияларга таяна албайсыз; капоттун астында эмне болуп жатканын билишиңиз керек.

Биздин команда көпчүлүк кызматтарды алыстан көрсөтөт (негизги инфраструктурага тыгыз байланышта болгондуктан), биз өзүбүздүн Kubernetes кластерин көтөргүбүз келген жок. Биз жөн гана кызмат көрсөтүүнү каалаганбыз.

Батареялар камтылган эмес

Nomad оркестрдин 20% түзөт, ал 80% керектүү нерсени камсыз кылат. Мунун баары жайгаштырууларды башкаруу. Nomad жайылтууга кам көрөт, каталар болгондо контейнерлерди кайра иштетет... ушуну менен.

Көчмөндүн бүт мааниси – анын кылганында минималдуу: эч кандай майдаланган укуктарды башкаруу же кеңейтилген тармак саясаттары, бул атайын иштелип чыккан. Бул компоненттер сырттан берилет же такыр жок.

Менимче, Nomad колдонуунун жөнөкөйлүгү менен пайдалуулуктун ортосунда эң сонун компромиссти тапты. Бул кичинекей, көз карандысыз кызматтар үчүн жакшы. Эгер сизге көбүрөөк көзөмөл керек болсо, аларды өзүңүз көтөрүңүз же башка ыкманы колдонуңуз. Көчмөн так оркестр.

Nomadтын эң жакшы жери – бул оңой. алмаштыруу. Иш жүзүндө сатуучу менен эч кандай байланыш жок, анткени анын функциялары кызматтарды башкарган башка системага оңой интеграцияланган. Ал кластердеги ар бир машинада кадимки бинардык сыяктуу иштейт, болгону ушунусу!

Бош кошулган компоненттердин көчмөн экосистемасы

Көчмөндүн чыныгы күчү - анын экосистемасы. Ал башка - толугу менен кошумча - сыяктуу өнүмдөр менен абдан жакшы биригет консул (ачкыч-нарк дүкөнү) же жыйнак (сырларды иштетүү). Nomad файлынын ичинде бул кызматтардан маалыматтарды алуу үчүн бөлүмдөр бар:

template {
  data = <<EOH
LOG_LEVEL="{{key "service/geo-api/log-verbosity"}}"
API_KEY="{{with secret "secret/geo-api-key"}}{{.Data.value}}{{end}}"
EOH

  destination = "secrets/file.env"
  env         = true
}

Бул жерде биз ачкычты окуйбуз service/geo-api/log-verbosity Консулдан жана иштеп жатканда биз аны чөйрө өзгөрмөсүнө дуушар кылабыз LOG_LEVEL. Биз ачкычты да сунуштайбыз secret/geo-api-key тартып Vault катары API_KEY. Жөнөкөй, бирок күчтүү!

Жөнөкөйлүгүнөн улам Nomad API аркылуу башка кызматтар менен оңой кеңейет. Мисалы, тапшырмалар үчүн тэгдер колдоого алынат. Биз бардык кызматтарды көрсөткүчтөр менен белгилейбиз trv-metrics. Ошентип, Prometheus бул кызматтарды Консул аркылуу оңой таап, мезгил-мезгили менен акыркы чекитти текшере алат /metrics жаңы маалыматтар үчүн. Ошол эле, мисалы, журналдар үчүн, колдонууга болот чонойгондо.

Узартуучулуктун башка көптөгөн мисалдары бар:

  • Женкинс жумушун илгич менен иштетиңиз жана Консул кызматтын конфигурациясы өзгөргөндө Көчмөн жумушунун кайра жайгаштырылышын көзөмөлдөйт.
  • Ceph Nomad'га бөлүштүрүлгөн файл тутумун кошот.
  • Fabio жүк баланстоо үчүн.

Мунун баары мүмкүнчүлүк берет инфраструктураны органикалык түрдө өнүктүрүү сатуучу менен эч кандай атайын байланышы жок.

Адилет эскертүү

Эч бир система идеалдуу эмес. Мен өндүрүшкө эң жаңы функцияларды дароо киргизүүнү сунуш кылбайм. Албетте, мүчүлүштүктөр жана жетишпеген функциялар бар, бирок ошол эле нерсе Kubernetesке да тиешелүү.

Кубернетеске салыштырмалуу Көчмөндөрдүн жамааты анчалык деле чоң эмес. Kubernetesтин буга чейин 75ге жакын милдеттенмелери жана 000 салымчылары бар, ал эми Nomadда 2000ге жакын милдеттенмелер жана 14 салымчылар бар. Nomad Кубернетестин ылдамдыгына жетишүү кыйынга турат, бирок, балким, кереги жок! Бул адистештирилген тутум жана кичирээк коомчулук Кубернетеске салыштырмалуу сиздин тартуу өтүнүчүңүз көбүрөөк байкалып, кабыл алынарын билдирет.

на

Жыйынтык: Kubernetesти башкалар жасап жаткандыктан эле колдонбоңуз. Талаптарыңызды кылдаттык менен баалаңыз жана кайсы курал пайдалуураак экенин текшериңиз.

Эгер сиз масштабдуу инфраструктурага бир тонна бир тектүү кызматтарды жайылтууну пландап жатсаңыз, анда Kubernetes жакшы вариант. Жөн гана кошумча татаалдыкты жана операциялык чыгымдарды билип алыңыз. сыяктуу башкарылган Kubernetes чөйрөсүн колдонуу менен кээ бир чыгымдардан качууга болот Google Kubernetes Engine же Amazon EKS.

Эгерде сиз жөн гана тейлөөгө оңой жана кеңейтилүүчү ишенимдүү оркестрди издеп жатсаңыз, эмне үчүн Nomad'ды сынап көрбөйсүз? Бул сизди канчалык алыска алып барарына таң калышыңыз мүмкүн.

Кубернетести машинага салыштырса, Nomad скутер болмок. Кээде бир нерсе керек, кээде башка нерсе керек. Экөө тең жашоого укуктуу.

Source: www.habr.com

Комментарий кошуу