Kubernetes шилдэг туршлагууд. Кубернетесийн амьд байдлыг бэлэн байдал ба амьд байдлын тестээр баталгаажуулах

Kubernetes шилдэг туршлагууд. Жижиг сав бий болгох
Kubernetes шилдэг туршлагууд. Нэрийн орон зайтай Кубернетесийн зохион байгуулалт

Kubernetes шилдэг туршлагууд. Кубернетесийн амьд байдлыг бэлэн байдал ба амьд байдлын тестээр баталгаажуулах

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

Эрүүл мэндийн шалгалт нь таны програмын жишээ ажиллаж байгаа эсэхийг системд мэдэгдэх энгийн арга юм. Хэрэв таны програмын инстанц ажиллахаа больсон бол бусад үйлчилгээнүүд үүнд хандах эсвэл хүсэлт илгээх ёсгүй. Үүний оронд хүсэлтийг аль хэдийн ажиллаж байгаа эсвэл дараа нь эхлүүлэх програмын өөр жишээ рүү илгээх ёстой. Нэмж дурдахад систем таны програмын алдагдсан функцийг сэргээх ёстой.

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

Kubernetes шилдэг туршлагууд. Кубернетесийн амьд байдлыг бэлэн байдал ба амьд байдлын тестээр баталгаажуулах

Аз болоход, Кубернетес үүнийг хийхэд маш хялбар болгодог тул эдгээр шалгалтыг үл тоомсорлох шалтгаан байхгүй. Kubernetes нь хоёр төрлийн эрүүл мэндийн үзлэгээр хангадаг бөгөөд тус бүрийг хэрхэн ашиглаж байгаа ялгааг ойлгох нь чухал юм.

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

Амьдрах тест нь Kubernetes-д таны програм амьд эсвэл үхсэн эсэхийг хэлж өгдөг. Эхний тохиолдолд Кубернетес үүнийг ганцаараа үлдээх болно, хоёр дахь тохиолдолд энэ нь үхсэн pod-ыг устгаж, шинээр солих болно.

Таны програмыг халааж, эхлүүлэхэд 1 минут зарцуулдаг хувилбарыг төсөөлөөд үз дээ. Ажлын урсгал аль хэдийн эхэлсэн хэдий ч програмыг бүрэн ачаалж, ажиллуулах хүртэл таны үйлчилгээ ажиллахгүй. Хэрэв та энэ байршуулалтыг хэд хэдэн хувь болгон өргөжүүлэхийг хүсвэл асуудал тулгарах болно, учир нь тэдгээр хуулбарууд бүрэн бэлэн болтол урсгал хүлээн авах ёсгүй. Гэхдээ анхдагчаар Кубернетес контейнер доторх процессууд эхэлмэгц траффик илгээж эхэлнэ.

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

Kubernetes шилдэг туршлагууд. Кубернетесийн амьд байдлыг бэлэн байдал ба амьд байдлын тестээр баталгаажуулах

Аппликешн удаан хугацаагаар гацаж, хүсэлтэд үйлчлэхээ больсон өөр нэг хувилбарыг төсөөлье. Процесс үргэлжилж байгаа тул анхдагч байдлаар Кубернетес бүх зүйл хэвийн гэж үзээд ажиллахгүй байгаа подвол руу хүсэлт илгээсээр байх болно. Гэхдээ Liveness-г ашиглах үед Кубернетес програм нь хүсэлт гаргахаа больсон болохыг илрүүлж, анхдагчаар үхсэн pod-ыг дахин эхлүүлнэ.

Kubernetes шилдэг туршлагууд. Кубернетесийн амьд байдлыг бэлэн байдал ба амьд байдлын тестээр баталгаажуулах

Бэлэн байдал, амьдрах чадварыг хэрхэн шалгадаг болохыг харцгаая. Туршилтын гурван арга байдаг - HTTP, Command, TCP. Та тэдгээрийн аль нэгийг ашиглан шалгаж болно. Хэрэглэгчийг шалгах хамгийн түгээмэл арга бол HTTP проб юм.

Таны аппликейшн HTTP сервер биш байсан ч гэсэн та Liveness тесттэй харилцахын тулд өөрийн аппликешн дотроо хөнгөн HTTP сервер үүсгэж болно. Үүний дараа Кубернетес pod-д пинг хийж эхлэх бөгөөд хэрэв HTTP хариу 200 эсвэл 300 мс-ийн мужид байвал энэ нь pod эрүүл байгааг илтгэнэ. Үгүй бол модулийг "эрүүл бус" гэж тэмдэглэнэ.

Kubernetes шилдэг туршлагууд. Кубернетесийн амьд байдлыг бэлэн байдал ба амьд байдлын тестээр баталгаажуулах

Тушаалын тестийн хувьд Кубернетес таны контейнер дотор тушаалыг ажиллуулдаг. Хэрэв тушаал нь тэг гарах кодтой буцаж ирвэл савыг эрүүл гэж тэмдэглэнэ, эс тэгвээс 1-ээс 255 хүртэлх гаралтын статусын дугаарыг хүлээн авснаар савыг "өвчтэй" гэж тэмдэглэнэ. Хэрэв та HTTP серверийг ажиллуулах боломжгүй эсвэл ажиллуулахыг хүсэхгүй байгаа ч таны програмын эрүүл мэндийг шалгах командыг ажиллуулах боломжтой бол энэ туршилтын арга хэрэг болно.

Kubernetes шилдэг туршлагууд. Кубернетесийн амьд байдлыг бэлэн байдал ба амьд байдлын тестээр баталгаажуулах

Баталгаажуулах эцсийн механизм бол TCP тест юм. Kubernetes нь заасан порт дээр TCP холболт үүсгэхийг оролдох болно. Хэрэв үүнийг хийж чадвал савыг эрүүл, үгүй ​​бол амьдрах боломжгүй гэж үзнэ. Хэрэв та HTTP хүсэлт эсвэл тушаалын гүйцэтгэлтэй тест хийх нь тийм ч сайн ажиллахгүй байгаа хувилбарыг ашиглаж байгаа тохиолдолд энэ арга хэрэг болно. Жишээлбэл, TCP ашиглан баталгаажуулах үндсэн үйлчилгээ нь gRPC эсвэл FTP байх болно.

Kubernetes шилдэг туршлагууд. Кубернетесийн амьд байдлыг бэлэн байдал ба амьд байдлын тестээр баталгаажуулах

Туршилтыг өөр өөр параметртэй хэд хэдэн аргаар тохируулж болно. Та тэдгээрийг хэр олон удаа гүйцэтгэх, амжилт, бүтэлгүйтлийн босго нь ямар байх, хариуг хэр удаан хүлээхийг зааж өгч болно. Дэлгэрэнгүй мэдээллийг Бэлэн байдал, Амьдрах тестийн баримт бичгийг үзнэ үү. Гэсэн хэдий ч, Амьдрах тестийг тохируулахад нэг маш чухал зүйл байдаг - туршилтын саатлын анхны тохиргоо нь initialDelaySeconds. Миний дурдсанчлан, энэ туршилт амжилтгүй болвол модулийг дахин эхлүүлэх болно. Тиймээс та програмыг ашиглахад бэлэн болтол туршилт эхлэхгүй байгаа эсэхийг шалгах хэрэгтэй, эс тэгвээс энэ нь дахин ачаалах замаар эргэлдэж эхлэх болно. Би P99 эхлүүлэх цаг эсвэл буферээс програмыг эхлүүлэх дундаж хугацааг ашиглахыг зөвлөж байна. Таны програмыг эхлүүлэх хугацаа хурдан эсвэл удааширч байгаа тул энэ утгыг тохируулахаа бүү мартаарай.

Ихэнх шинжээчид Эрүүл мэндийн үзлэг нь аливаа тархсан системийн заавал шалгах шалгалт бөгөөд Кубернетес нь үл хамаарах зүйл биш гэдгийг батлах болно. Үйлчилгээний эрүүл мэндийн шалгалтыг ашиглах нь Kubernetes-ийн найдвартай, асуудалгүй ажиллагааг баталгаажуулж, хэрэглэгчдэд хялбар байдаг.

Үргэлжлэл тун удахгүй...

Зарим зар 🙂

Бидэнтэй хамт байсанд баярлалаа. Манай нийтлэл танд таалагдаж байна уу? Илүү сонирхолтой контент үзэхийг хүсч байна уу? Захиалга өгөх эсвэл найзууддаа санал болгох замаар биднийг дэмжээрэй, 4.99 доллараас эхлэн хөгжүүлэгчдэд зориулсан үүлэн VPS, Бидний танд зориулж бүтээсэн анхны түвшний серверүүдийн өвөрмөц аналоги: VPS (KVM) E5-2697 v3 (6 цөм) 10GB DDR4 480GB SSD 1Gbps-ийн 19 ам.долларын үнэ эсвэл серверийг хэрхэн хуваалцах тухай бүх үнэн үү? (RAID1 болон RAID10, 24 хүртэлх цөм, 40 ГБ хүртэл DDR4-тэй байх боломжтой).

Амстердам дахь Equinix Tier IV дата төвд Dell R730xd 2 дахин хямд байна уу? Зөвхөн энд 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ 199 доллараас Нидерландад! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 доллараас! тухай уншина уу Дэд бүтцийн корпорацийг хэрхэн барих вэ. нэг пенни нь 730 еврогийн үнэтэй Dell R5xd E2650-4 v9000 сервер ашиглах анги?

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

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