Kubernetes-ийг сайжруулах 11 хэрэгсэл

Kubernetes-ийг сайжруулах 11 хэрэгсэл

Бүх серверийн платформууд, тэр ч байтугай хамгийн хүчирхэг, өргөтгөх боломжтой платформууд нь бүх хэрэгцээг хангаж чаддаггүй. Кубернетес бие даан маш сайн ажилладаг ч бүрэн гүйцэд болгох зөв хэсгүүд дутагдалтай байж магадгүй юм. Таны хэрэгцээг үл тоомсорлодог, эсвэл Kubernetes анхдагч суулгацад ажиллахгүй байх онцгой тохиолдлыг та үргэлж олох болно - жишээлбэл, мэдээллийн сангийн дэмжлэг эсвэл CD-ийн ажиллагаа.

Эндээс олон нийт дэмжсэн энэхүү контейнер найруулагчийн нэмэлт, өргөтгөл болон бусад сайхан зүйлс гарч ирнэ. Энэ нийтлэлд бидний олсон шилдэг 11 зүйлийг багтаах болно. Өөрсдөдөө Саутбридж Тэдгээр нь маш сонирхолтой бөгөөд бид тэдгээрийг практик дээр шийдвэрлэхээр төлөвлөж байна - тэдгээрийг шураг, самар болгон хувааж, дотор нь юу байгааг хараарай. Тэдгээрийн зарим нь ямар ч Kubernetes кластерийг төгс нөхөх болно, зарим нь стандарт Kubernetes багцад хэрэгждэггүй тодорхой асуудлуудыг шийдвэрлэхэд туслах болно.

Хаалгач: Бодлогын удирдлага

Төсөл Нээлттэй бодлогын агент (OPA) нь Кубернетес дэх үүлэн хэрэглээний стек дээр нэвтрэхээс эхлээд үйлчилгээний сүлжээ хүртэл бодлого үүсгэх боломжийг олгодог. Хаалгач нь Kubernetes-д кластер даяар автоматаар бодлогыг хэрэгжүүлэх чадварыг олгохоос гадна бодлогыг зөрчсөн аливаа үйл явдал, нөөцийг шалгах боломжийг олгодог. Энэ бүгдийг Webhooks элсэлтийн менежер Кубернетес дэх харьцангуй шинэ механизмаар зохицуулдаг бөгөөд энэ нь нөөцүүд өөрчлөгдөх үед идэвхждэг. Gatekeeper-ийн тусламжтайгаар OPA бодлого нь байнгын хяналт шаардлагагүйгээр таны Kubernetes кластерын эрүүл мэндийн бас нэг хэсэг болдог.

Таталцал: Зөөврийн Кубернетес кластерууд

Хэрэв та Kubernetes-д програм байрлуулахыг хүсч байвал олон програмууд энэ үйл явцыг удирдан чиглүүлж, автоматжуулдаг Helm диаграмтай байдаг. Гэхдээ та Kubernetes кластераа байгаагаар нь аваад өөр газар гаргахыг хүсвэл яах вэ?

хүндийн хүчний Кубернетес кластеруудын төлөв байдлын агшин зуурын агшингуудыг авч, тэдгээрийн контейнер зургийн бүртгэлүүд болон "програмын багцууд" гэж нэрлэгддэг програмуудыг ажиллуулдаг. Энгийн файл болох ийм багц .tar, Кубернетес ажиллуулж болох хаана ч байсан кластерыг хуулбарлах боломжтой.

Гравитаци нь зорилтот дэд бүтэц нь эх сурвалжтай адил ажиллаж, зорилтот дээрх Кубернетес орчин байгаа эсэхийг шалгадаг. Gravity-ийн төлбөртэй хувилбар нь RBAC болон өөр өөр кластер байршуулалт дээр аюулгүй байдлын тохиргоог синхрончлох чадвар зэрэг хамгаалалтын функцуудыг нэмдэг.

Хамгийн сүүлийн үеийн томоохон хувилбар болох Gravity 7 нь зурагнаас цоо шинэ кластер гаргахын оронд одоо байгаа Kubernetes кластерт Gravity дүрсийг гаргах боломжтой. Gravity 7 нь Gravity дүрсгүйгээр суулгасан кластеруудтай ажиллах боломжтой. Gravity нь SELinux-ийг дэмждэг бөгөөд Teleport SSH гарцтай ажилладаг.

Канико: Кубернетес кластерт сав барих

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

Канико чингэлэг орчинд чингэлэг бүтээдэг, гэхдээ Docker гэх мэт контейнержуулах үйлчилгээнээс хамааралгүйгээр. Харин Канико нь үндсэн зургаас файлын системийг гаргаж аваад, задалсан файлын системийн дээд талд хэрэглэгчийн орон зайд бүх бүтээх командуудыг ажиллуулж, команд бүрийн дараа файлын системийн агшин зургийг авдаг.

Жич: Канико одоогоор (2020 оны тавдугаар сар, ойролцоогоор. орчуулагч) Windows-ийн контейнеруудыг барьж чадахгүй.

Kubecost: Kubernetes эхлүүлэх зардлын параметрүүд

Kubernetes-ийн удирдлагын ихэнх хэрэгслүүд нь ашиглахад хялбар, хяналт тавих, хонгил доторх зан төлөвийг ойлгох зэрэгт төвлөрдөг. Гэхдээ Kubernetes-ийг ажиллуулахтай холбоотой зардлыг доллар, пенниээр харвал ямар вэ?

Кубекост Kubernetes-ийн параметрүүдийг бодит цаг хугацаанд боловсруулдаг бөгөөд ингэснээр кластер бүрийн сарын зардлыг харуулсан хяналтын самбарт томоохон үүл үйлчилгээ үзүүлэгчдийн кластеруудыг ажиллуулахаас хамгийн сүүлийн үеийн зардлын мэдээллийг гаргадаг. RAM, CPU-ийн цаг, GPU болон дискний дэд системийн үнийг Kubernetes бүрэлдэхүүн хэсэг (контейнер, подволк, үйлчилгээ гэх мэт) ангилдаг.

Kubecost нь Amazon S3 хувин зэрэг кластераас гадуурх нөөцийн зардлыг хянадаг боловч энэ нь AWS-ээр хязгаарлагддаг. Зардлын мэдээллийг Prometheus руу илгээх боломжтой бөгөөд ингэснээр та кластерын үйл ажиллагааг программчлан өөрчлөхөд ашиглаж болно.

15 хоногийн бүртгэлийн өгөгдөл танд хангалттай бол Kubecost үнэгүй ашиглах боломжтой. Нэмэлт боломжуудын хувьд үнэ нь 199 зангилааг хянахын тулд сард 50 доллараас эхэлдэг.

KubeDB: Kubernetes дээр байлдааны мэдээллийн санг ажиллуулж байна

Мэдээллийн сангууд Kubernetes дээр үр дүнтэй ажиллахад нэлээд хэцүү байдаг. Та MySQL, PostgreSQL, MongoDB болон Redis-д зориулсан Kubernetes операторуудыг олох болно, гэхдээ тэдгээр нь бүгд сул талуудтай. Мөн ердийн Kubernetes функцийн багц нь мэдээллийн сангийн ихэнх асуудлыг шууд шийдэж чаддаггүй.

KubeDB өгөгдлийн санг удирдахын тулд таны Kubernetes мэдэгдлийг бий болгоход тусална. Нөөцлөлтийг ажиллуулах, клончлох, хянах, агшин зуурын зураг авах, мэдээллийн сан үүсгэх нь түүний бүрэлдэхүүн хэсэг юм. Функцийн дэмжлэг нь мэдээллийн сангаас хамаарч өөр өөр байж болохыг анхаарна уу. Жишээлбэл, кластер үүсгэх нь PostgreSQL-д ажилладаг боловч MySQL-д биш (аль хэдийн байна гэж зөв тэмдэглэсэн dnbstd, ойролцоогоор. орчуулагч).

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

Стресс тестийн хамгийн алдаагүй аргыг санамсаргүй эвдрэл гэж үздэг. Энэ бол Netflix-ийн Chaos Monkey хэмээх эмх замбараагүй инженерийн хэрэгсэл болох виртуал машинууд болон үйлдвэрлэлийн контейнеруудыг санамсаргүй байдлаар хааж, хөгжүүлэгчдэд илүү уян хатан систем бий болгоход "өдөөх" онол юм. Кубе-сармагчин - Kubernetes кластерт зориулсан стресс тестийн ижил үндсэн онолыг хэрэгжүүлэх. Энэ нь таны зааж өгсөн кластер дахь хонхорцог санамсаргүй байдлаар устгах замаар ажилладаг бөгөөд мөн тодорхой хугацааны интервалд ажиллахаар тохируулж болно.

AWS-д зориулсан Kubernetes Ingress Controller

Kubernetes нь гадаад ачаалал тэнцвэржүүлэгч болон кластер сүлжээний үйлчилгээгээр дамжуулан үйлчилгээ үзүүлдэг Ingress AWS нь ачааллыг тэнцвэржүүлэх функцээр хангадаг боловч үүнийг Kubernetes-ийн ижил чадвартай автоматаар холбодоггүй. AWS-д зориулсан Kubernetes Ingress Controller энэ цоорхойг хаадаг.

Энэ нь кластер дахь оролтын объект бүрийн AWS нөөцийг автоматаар удирдаж, шинэ оролтын нөөцөд ачаалал тэнцвэржүүлэгчийг үүсгэж, нөөц устах үед ачааллын тэнцвэржүүлэгчийг устгадаг. Энэ нь кластерын төлөвийг тогтвортой байлгахын тулд CloudFormation-ийг ашигладаг. Энэ нь мөн CloudWatch дохиоллын тохиргоог дэмждэг бөгөөд SSL сертификат, EC2 автомат масштабын бүлгүүд зэрэг кластерт ашигладаг бусад элементүүдийг автоматаар удирддаг.

Kubespray: Kubernetes-ийн автомат суурилуулалт

Кубеспрай Техник хангамжийн серверүүд дээр суурилуулахаас эхлээд томоохон нийтийн үүл хүртэл үйлдвэрлэхэд бэлэн Kubernetes кластерийг суурилуулах ажлыг автоматжуулдаг. Энэ нь Ansible (Vagrant - сонголттой) программыг ашиглан суулгацыг ажиллуулж, тоног төхөөрөмжийн сервер дээр суулгасан үед таны сонгосон түгээмэл Линукс түгээлт дээр сүлжээний нэмэлт хэрэгслээр (Flannel, Calico болон бусад) эхнээс нь өндөр боломжтой кластер үүсгэдэг.

Skaffold: Kubernetes-д зориулсан давталттай хөгжил

Скаффолд - Кубернетес дэх CD програмуудыг зохион байгуулахад ашигладаг Google хэрэгслүүдийн нэг. Таныг эх кодонд өөрчлөлт оруулмагц skaffold үүнийг автоматаар илрүүлж, бүтээж, байрлуулж, алдаа гарсан тохиолдолд танд анхааруулдаг. Skaffold нь бүхэлдээ үйлчлүүлэгч тал дээр ажилладаг тул бага зэрэг суулгах эсвэл шинэчлэх асуудал гарч болзошгүй. Энэ нь одоо байгаа CICD дамжуулах хоолойд ашиглагдах боломжтой бөгөөд мөн Google-ийн Bazel гэх мэт гадны барилгын хэрэгслүүдтэй холбогдох боломжтой.

Тереза: Kubernetes дээрх хамгийн энгийн PaaS

Тереза нь Kubernetes дээр энгийн PaaS ажиллуулдаг програмыг байршуулах систем юм. Багаар зохион байгуулагдсан хэрэглэгчид өөрсдийн эзэмшдэг програмуудаа байршуулж, удирдах боломжтой. Энэ нь аппликешнд итгэдэг, Кубернетес болон түүний бүх нарийн төвөгтэй асуудлуудыг шийдвэрлэхийг хүсдэггүй хүмүүсийн ажлыг бага зэрэг хөнгөвчилдөг.

Налалт: Кубернетес кластерууд руу контейнерын шинэчлэлтүүдийг дамжуулж байна

TiltWindmill Engineering-ийн боловсруулсан , өөр өөр Dockerfiles-ийн өөрчлөлтийг ажиглаж, дараа нь Кубернетес кластерт харгалзах контейнеруудыг аажмаар байрлуулдаг. Үндсэндээ энэ нь Dockerfiles-ийг шинэчлэх замаар үйлдвэрлэлийн кластераа бодит цаг хугацаанд шинэчлэх боломжийг танд олгоно. Кластер дотор хазайлт үүсдэг, эх кодыг өөрчлөх шаардлагатай. Та мөн кластерын эрүүл мэндийн агшин зуурын зургийг авч, алдааны нөхцлүүдийг Tilt-ээс шууд авч, дибаг хийх зорилгоор багийн гишүүдтэй хуваалцах боломжтой.

Жич Бид эдгээр бүх хэрэгслийг дахин дахин ашигласан Саутбридж бидний сониуч гараараа шалгасан. XNUMX-р сард офлайн эрчимжүүлсэн сургалтууд дээр аль хэдийн бодит туршлагуудыг (найдаж байна!) үзүүлэх. Кубернетес бааз 8 оны хоёрдугаар сарын 10-2021. Мөн Kubernetes Mega Хоёрдугаар сарын 12-14. Үнэнийг хэлэхэд, бид офлайн сургалтын халуун дулаан, эрч хүчтэй уур амьсгалыг бас санаж байна. Хичнээн дэвшилтэт технологи байсан ч тэдгээр нь хүмүүсийн амьд харилцаа холбоо, сэтгэлгээтэй хүмүүс цугларах онцгой уур амьсгалыг орлож чадахгүй.

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

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