Танд Kubernetes хэрэггүй байж магадгүй

Танд Kubernetes хэрэггүй байж магадгүй
Скутер унасан охин. Дүрслэл фрепик, Nomad logo from HashiCorp

Кубернетес бол контейнер найрал хөгжмийн 300 фунт жинтэй горилл юм. Энэ нь дэлхийн хамгийн том савны системд ажилладаг боловч үнэтэй байдаг.

Ялангуяа жижиг багуудын хувьд үнэтэй байдаг бөгөөд энэ нь маш их дэмжлэг үзүүлэх цаг, сургалтын огцом муруй шаарддаг. Манай дөрвөн багийн хувьд энэ нь хэтэрхий их ачаалал юм. Тиймээс бид өөр хувилбар хайж эхэлсэн бөгөөд түүнд дурласан Нүүдэл.

Чи юу хүсч байна

Манай баг гүйцэтгэлийн хяналт, шинжилгээний хэд хэдэн нийтлэг үйлчилгээг дэмждэг: Go-д бичигдсэн хэмжигдэхүүнүүдийн API төгсгөлийн цэгүүд, Prometheus экспорт, Logstash гэх мэт лог задлагч болон Голлум, түүнчлэн InfluxDB эсвэл Elasticsearch зэрэг мэдээллийн сангууд. Эдгээр үйлчилгээ тус бүр өөрийн гэсэн саванд ажилладаг. Энэ бүгдийг хэвийн байлгахын тулд бидэнд энгийн систем хэрэгтэй.

Бид контейнер найрал хөгжимд тавигдах шаардлагуудын жагсаалтаас эхэлсэн.

  • Олон машин дээр багц үйлчилгээг ажиллуулж байна.
  • Ажиллаж буй үйлчилгээний тойм.
  • Үйлчилгээ хоорондын холбоос.
  • Үйлчилгээ унтарсан тохиолдолд автоматаар дахин эхлүүлнэ.
  • Цөөн багаар дэд бүтцийн засвар үйлчилгээ.

Нэмж дурдахад дараах зүйлс сайхан байх болно, гэхдээ нэмэлт шаардлагагүй болно.

  • Машинуудыг чадавхид тулгуурлан шошголох (жишээ нь, хүнд оролт гаралтын үйлчилгээнд зориулсан хурдан дисктэй машинуудыг шошголох).
  • Оркестратороос хамааралгүйгээр үйлчилгээг ажиллуулах чадвар (жишээлбэл, хөгжүүлэлтийн үед).
  • Тохиргоо, нууцыг хуваалцах нийтлэг газар.
  • Хэмжилт ба логуудын төгсгөлийн цэг.

Яагаад Кубернетес бидэнд тохирохгүй байна вэ?

Бид Кубернетестэй прототип хийхдээ бидний ихээхэн найддаг логикийн улам бүр төвөгтэй давхаргыг нэмж байгааг анзаарсан.

Жишээлбэл, Kubernetes нь суулгасан үйлчилгээний тохиргоог дэмждэг ConfigMaps. Ялангуяа олон тохиргооны файлуудыг нэгтгэх эсвэл нэмэлт үйлчилгээнүүдийг pod-д нэмэх үед та хурдан төөрөлдөж болно. Кубернетес (эсвэл Helmer Энэ тохиолдолд) нь санаа зовоосон асуудлуудыг салгахын тулд гадаад тохиргоог динамикаар хэрэгжүүлэх боломжийг танд олгоно. Гэхдээ энэ нь таны төсөл болон Кубернетес хоёрын хооронд нягт, далд холболт үүсгэдэг. Гэсэн хэдий ч Helm болон ConfigMaps нь нэмэлт сонголтууд тул та тэдгээрийг ашиглах шаардлагагүй болно. Та зүгээр л тохиргоог Docker дүрс рүү хуулж болно. Гэсэн хэдий ч, энэ замаар явж, дараа нь харамсах хэрэггүй хийсвэрлэлийг бий болгох нь уруу татагддаг.

Нэмж дурдахад Кубернетес экосистем хурдацтай хөгжиж байна. Шилдэг туршлага, хамгийн сүүлийн үеийн хэрэглүүртэй танилцахын тулд маш их цаг хугацаа, эрч хүч шаардагдана. Kubectl, minikube, kubeadm, helm, tiller, kops, oc - жагсаалт үргэлжлэх болно. Таныг эхэлж байхад эдгээр хэрэгслүүд бүгд хэрэггүй, гэхдээ та юу хэрэгтэйг мэдэхгүй байгаа тул бүх зүйлийг мэдэж байх хэрэгтэй. Үүнээс болоод суралцах муруй нэлээд эгц байдаг.

Kubernetes-ийг хэзээ ашиглах вэ

Манай компанид олон хүмүүс Kubernetes ашигладаг бөгөөд үүнд сэтгэл хангалуун байдаг. Эдгээр тохиолдлуудыг дэмжих нөөцтэй Google эсвэл Amazon удирддаг.

Кубернетес хамт ирдэг гайхалтай шинж чанарууд, энэ нь чингэлэг зохион байгуулалтыг илүү удирдах боломжтой болгодог:

Асуулт бол танд эдгээр бүх боломжууд үнэхээр хэрэгтэй эсэх юм. Та зөвхөн хийсвэр зүйлд найдаж болохгүй; Та бүрээсний доор юу болж байгааг олж мэдэх хэрэгтэй.

Манай баг ихэнх үйлчилгээг алсаас хангадаг (үндсэн дэд бүтэцтэй нягт холбогдсон тул) бид Кубернетес кластераа өсгөхийг хүсээгүй. Бид үйлчилгээ үзүүлэхийг л хүссэн.

Батерейг оруулаагүй болно

Нүүдэл найрал хөгжмийн 20% нь хэрэгцээт зүйлийн 80% -ийг хангадаг. Үүний хийдэг зүйл бол байршуулалтыг удирдах явдал юм. Nomad байршуулалтыг хариуцдаг, алдаа гарсан тохиолдолд контейнеруудыг дахин эхлүүлдэг ... тэгээд л болоо.

Nomad-ийн гол зорилго бол юу хийдэг вэ хамгийн бага: нарийн эрхийн менежмент байхгүй эсвэл өргөтгөсөн сүлжээний бодлого, энэ нь тусгайлан зохион бүтээгдсэн. Эдгээр бүрэлдэхүүн хэсгүүдийг гаднаас өгдөг эсвэл огт өгдөггүй.

Миний бодлоор Nomad ашиглахад хялбар байдал, ашигтай байдлын хоорондох төгс тохироог олсон гэж бодож байна. Энэ нь жижиг бие даасан үйлчилгээнд тохиромжтой. Хэрэв танд илүү их хяналт хэрэгтэй бол та өөрөө өсгөх эсвэл өөр арга хэрэглэх хэрэгтэй болно. Нүүдэлчин зүгээр л найрал хөгжимчин.

Nomad-ийн хамгийн сайхан зүйл бол энэ нь хялбар юм солих. Үйлчилгээг удирддаг бусад системд түүний функцууд амархан нэгтгэгддэг тул борлуулагчтай бараг ямар ч холбоо байхгүй. Энэ нь кластер дахь бүх машин дээр ердийн хоёртын файл шиг ажилладаг, тэгээд л тэр!

Сул холбогдсон бүрэлдэхүүн хэсгүүдийн нүүдлийн экосистем

Nomad-ийн жинхэнэ хүч бол түүний экосистем юм. Энэ нь бусад бүрэн сонголттой бүтээгдэхүүнтэй маш сайн нийцдэг Консул (түлхүүр үнэ цэнийн дэлгүүр) эсвэл Vault (нууцыг боловсруулах). 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. Ингэснээр Прометей эдгээр үйлчилгээг Консулаар дамжуулан хялбархан олж, төгсгөлийн цэгийг үе үе шалгаж болно /metrics шинэ мэдээллийн хувьд. Үүнтэй ижил зүйлийг жишээлбэл, лог ашиглан хийж болно Локи.

Өргөтгөх чадварын өөр олон жишээ бий:

  • Дэгээ ашиглан Женкинсийн ажлыг ажиллуулж, Консул нь үйлчилгээний тохиргоо өөрчлөгдөх үед Нүүдэлчдийн ажлыг дахин байршуулахыг хянадаг.
  • Ceph нь Nomad-д хуваарилагдсан файлын системийг нэмдэг.
  • fabio байна ачааллыг тэнцвэржүүлэх зориулалттай.

Энэ бүхэн боломжийг олгодог дэд бүтцийг органик байдлаар хөгжүүлэх худалдагчтай тусгай холболтгүйгээр.

Шударга анхааруулга

Ямар ч систем төгс байдаггүй. Би хамгийн сүүлийн үеийн функцуудыг үйлдвэрлэлд нэн даруй нэвтрүүлэхийг зөвлөдөггүй. Мэдээжийн хэрэг алдаа дутагдал, дутуу функцууд байгаа ч Kubernetes-д мөн адил хамаарна.

Кубернетестэй харьцуулахад Нүүдэлчдийн нийгэмлэг тийм ч том биш юм. Кубернетес аль хэдийн 75 орчим амлалт, 000 хувь нэмэр оруулагчтай бол Номад 2000 орчим амлалт, 14 хувь нэмэр оруулагчтай. Nomad-д Кубернетесийн хурдыг гүйцэхэд хэцүү байх болно, гэхдээ ингэх шаардлагагүй байж магадгүй юм! Энэ нь илүү мэргэшсэн систем бөгөөд жижиг нийгэмлэг нь Кубернетестэй харьцуулахад таны татах хүсэлтийг анзаарч, хүлээж авах магадлал өндөр гэсэн үг юм.

Хураангуй

Доод шугам: Бусад хүмүүс үүнийг хийж байгаа учраас Kubernetes-ийг бүү ашигла. Шаардлагаа сайтар үнэлж, аль хэрэгсэл нь илүү ашигтай болохыг шалгаарай.

Хэрэв та том хэмжээний дэд бүтцэд нэг төрлийн үйлчилгээ үзүүлэхээр төлөвлөж байгаа бол Кубернетес бол сайн сонголт юм. Нэмэлт нарийн төвөгтэй байдал, үйл ажиллагааны зардлыг мэдэж байх хэрэгтэй. зэрэг удирддаг Kubernetes орчныг ашигласнаар зарим зардлаас зайлсхийх боломжтой Google-ийн Kubernetes Engine буюу Amazon EKS.

Хэрэв та засвар үйлчилгээ хийхэд хялбар, өргөтгөх боломжтой найдвартай найрал хөгжимчин хайж байгаа бол яагаад Nomad-ийг туршиж үзэж болохгүй гэж? Энэ нь таныг хэр хол авч явахыг та гайхаж магадгүй юм.

Хэрэв Кубернетесийг машинтай зүйрлэвэл Номад скутер болно. Заримдаа танд нэг зүйл хэрэгтэй, заримдаа өөр зүйл хэрэгтэй. Аль аль нь оршин тогтнох эрхтэй.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх