JavaRush /Java blogi /Random-UZ /Docker, Kubernetes, OpenShift kimlar va ular bir-biri bil...

Docker, Kubernetes, OpenShift kimlar va ular bir-biri bilan qanday bog'liq?

Guruhda nashr etilgan
Hammasi qadoqlashdan boshlanadi. Sanoat rivojlanishida yig'ilgan dasturni, masalan, u ishlaydigan serverga, ishlab chiquvchi uni o'z kompyuterida yig'gan shaklda, bunday "qadoqlash" ga o'tkazish uchun "paketlash" zarurati mavjud. himoya turi bo'lib xizmat qilishi kerak. Bu kutilmagan hodisalarni yo'q qiladi, masalan, sinov paytida dastur ishlaganda, lekin ishlab chiqarishga o'tkazilganda buziladi. Bundan tashqari, "qadoqlash" bitta serverda joylashgan bir dasturni boshqasidan ajratib turadi, bunday izolyatsiya bir dasturga boshqasining ishiga xalaqit bermaslikka imkon beradi (masalan: bitta dastur serverning barcha operativ xotirasini egallab ololmaydi, bu esa serverning barcha operativ xotirasini egallashi mumkin. uning taqdiriga ikkinchi ariza). Mikroservis arxitekturasi bilan "qadoqlash" ning afzalliklari ayniqsa sezilarli va bu tushunarli; ko'plab mikroservislar mavjud - bir-biri bilan aloqa qilishlari kerak bo'lgan ko'plab kichik ilovalar, lekin ayni paytda bir-biriga xalaqit bermasligi kerak. Misol tariqasida ko'krak qafasi (server) bo'lib, unda juda ko'p turli xil tortmalar mavjud va biz turli xil paypoqlarni bir tortmadan boshqasiga osongina ko'chirishimiz mumkin va shu bilan birga ular bir-biriga yoki külotlarga aralashmaydi. Docker, Kubernetes, OpenShift kimlar va ular bir-biri bilan qanday bog'liq?  - 1 Qadoqlash virtualizatsiya vositalari tomonidan yaratilgan. Bir vaqtlar virtual mashinalar (VM) "qadoqlash" sifatida ishlatilgan. Keksa odamlar Windows XP-ni Vista-da virtual mashinada qanday o'rnatganliklarini eslashadi. Endi ilovalarni qadoqlash uchun VM o'tmishda qoldi. Konteynerlar dunyoni egallab oldi. Chunki ular: engilroq, samaraliroq va xavfsizroq. Batafsilroq: konteyner virtual mashinadan nimasi bilan farq qiladi? Docker, Kubernetes, OpenShift kimlar va ular bir-biri bilan qanday bog'liq?  - 2 Konteynerlarning ba'zi afzalliklarini eslab qolishingiz kerak: • ular hajmi jihatidan kichikroq (serverda kamroq xotirani egallaydi); • umumiy server resurslariga (RAM, protsessorni hisoblash vaqti) kirish huquqiga ega; • boshqa muhitlarga (sinovdan sanoatgacha) yaxshi ko'chirish qobiliyatiga ega; • yuqori ishga tushirish tezligini ta'minlash (konteyner engil bo'lgani uchun u tezroq ishga tushadi). Docker - konteynerlarning onasi. Konteyner deganda ular Dockerni nazarda tutadi. Docker - bu konteynerlangan muhitda ilovalarni joylashtirish va boshqarishni avtomatlashtirish uchun dasturiy ta'minot. Misollardan foydalanib, Docker onlayn dizayner va kranli 3D printer o'rtasidagi xochdir. Ya'ni, u birinchi navbatda konteyner uchun shablonni (tasvirni) loyihalashi, konteynerni berilgan shartlar (tasvir) bo'yicha chop etishi (yaratishi) va keyin uni kerakli joyga ko'chirishi mumkin. Tutqichlar o'rniga docker fayllari ishlatiladi. Boshqaruv jarayoni oddiy: siz fayllar, buyruqlar yozasiz, ularni ishga tushirasiz va nima sodir bo'lishini ko'rasiz. Docker, Kubernetes, OpenShift kimlar va ular bir-biri bilan qanday bog'liq?  - 3 Docker Docker Compose bilan birinchi tanishish - yangilangan Docker Keling, bir joyda bir nechta konteynerlar ishlashi kerak bo'lgan stsenariyni ko'rib chiqaylik. Buning uchun ishlatiladigan yordamchi dastur Docker Compose. Docker Compose - bu Docker-ga kiritilgan vosita. U loyihani joylashtirish bilan bog'liq muammolarni hal qilish uchun mo'ljallangan. Docker va Docker Compose o'rtasidagi farq: Docker alohida konteynerlarni boshqarish uchun ishlatiladi. Docker Compose bir vaqtning o'zida bir nechta konteynerlarni boshqarish uchun ishlatiladi. Ushbu vosita Docker bilan bir xil imkoniyatlarni taqdim etadi, ammo yanada murakkab tuzilmalar bilan ishlash imkonini beradi. Docker, Kubernetes, OpenShift kimlar va ular bir-biri bilan qanday bog'liq?  - 4 Docker Compose-dan foydalanishning odatiy stsenariysi: Tasavvur qiling-a, siz veb-loyihani ishlab chiquvchisiz. Ushbu loyiha ikkita veb-saytni o'z ichiga oladi. Birinchisi, ishbilarmonlarga bir necha marta bosish orqali onlayn-do'konlar yaratish imkonini beradi. Ikkinchisi mijozlarni qo'llab-quvvatlashga qaratilgan. Ushbu ikki sayt bir xil ma'lumotlar bazasi bilan o'zaro ishlaydi. Sizning loyihangiz tobora ommalashib bormoqda va u ishlaydigan serverning kuchi endi etarli emasligi ma'lum bo'ldi. Natijada siz butun loyihani boshqa mashinaga ko'chirishga qaror qilasiz. Agar siz Docker Compose kabi biror narsadan foydalanmagan bo‘lsangiz, bu jarayonda hech narsani unutmasligingizga umid qilib, konteynerlarni birma-bir ko‘chirishingiz va qayta sozlashingiz kerak bo‘ladi. Agar siz Docker Compose-dan foydalansangiz, loyihangizni yangi serverga ko'chirish bir nechta buyruqlarni bajarish orqali hal qilinishi mumkin bo'lgan masaladir. Loyihani yangi joyga o'tkazishni yakunlash uchun siz faqat ba'zi sozlamalarni o'rnatishingiz va ma'lumotlar bazasining zaxira nusxasini yangi serverga yuklashingiz kerak. Oddiy DockerComposer: Docker, Kubernetes, OpenShift kimlar va ular bir-biri bilan qanday bog'liq?  - 5 Bu erda nimani eslash kerak: Konteynerlar "qadoqlash" ilovalari uchun asosiy vositadir. Docker konteynerlarni boshqaradi, konteyner tasvirlarini yaratadi, konteynerlarni oladi va ko'chiradi. Bir vaqtning o'zida bir nechta konteynerlarni boshqarish uchun Docker tarkibiga kiritilgan Docker Compose ishlatiladi. Bu dasturlar bepul dasturiy ta'minot (freebies - bir so'z bilan aytganda) Kubernetes (K8s) - Docker avtomatlashtirish Va shuning uchun biz konteynerlarni joylashtirdik, biz ularni "to'plamlarda" mashinadan mashinaga qanday o'tkazishni bilamiz. Lekin birdan konteynerlardan biri qulab tushdi! Nima qilish kerak? Uni yana kim ko'taradi? Docker, Kubernetes, OpenShift kimlar va ular bir-biri bilan qanday bog'liq?  - 6 Albatta, buni Docker orqali qo'lda qilishingiz mumkin. Lekin siz biror narsa qilishingiz, biror narsa yozishingiz kerak, sizga qandaydir avtomatlashtirish vositasi kerak. Bu erda Kubernetes (qisqartirilgan K8s) rasmga tushadi, u konteynerlarni boshqarish va boshqarish (tegishli ob'ektlarni avtomatlashtirilgan boshqarish) bilan ham shug'ullanadi. K8-lar sizning ixtiyoringizda bo'lsa, siz tunu kun konteynerlarni kuzatib borishingiz shart emas. Xulq-atvor stsenariysini aniqlash kifoya va K8s hamma narsani o'zi qiladi. Kubernetesning asosiy xususiyatlari 1. Konfiguratsiyangizning miqyosi va boshqaruvini taʼminlaydi. 2. Klasterni joylashtirishda nimani olishni xohlayotganingizni tasvirlashingiz mumkin va K8s buni amalga oshiradi. Misol uchun, podalar sonini belgilang, ular uchun qancha xotira ajratish kerakligi, podkalarda (konteynerlarda) joylashtirilgan ilovalarning replika (nasolalari) sonini ko'rsating. 3. Tizimni ma'lum bir holatda saqlash uchun javobgardir, agar biror narsa tushib qolsa, K8s uni belgilangan konfiguratsiyaga muvofiq olib ketadi. Bu erda nimani eslab qolishingiz kerak: Kubernetes - bu konteynerlashtirilgan ilovalarni tartibga solish vositasi - ularni klasterda joylashtirish, masshtablash va muvofiqlashtirishni avtomatlashtirish. Dockerni o'z ichiga olgan yirik konteynerlashtirish texnologiyalarini qo'llab-quvvatlaydi. K8s ochiq kodli dasturiy ta'minot. Docker, Kubernetes, OpenShift kimlar va ular bir-biri bilan qanday bog'liq?  - 7 OpenShift - bu virtualizatsiya olamidagi Ferrari, ajoyib, tez va qimmat Mavzuni ishlab chiqish, OpenShift-ga o'tamiz. OpenShift - bu Kubernetes-ga qo'shimcha funktsiyalarni taklif qiladigan qo'shimcha. U darhol foydalanishga tayyor, u uzoq va og'riqli konfiguratsiyani talab qilmaydi va darhol ishlab chiqarishga kiritilishi mumkin. Kubernetes tepasida qancha xil piktogramma borligini ko'ring. Va ularning har biri o'zining ajoyib ishlarini qiladi. Docker, Kubernetes, OpenShift kimlar va ular bir-biri bilan qanday bog'liq?  - 8 OpenShift-ning diqqatga sazovor joylari: • K8-lardan farqli o'laroq, bu pullik mahsulotdir; • Qutidagi DevOps, asosiy ko'k/yashil, kanareykalarni joylashtirish stsenariylarini qo'llab-quvvatlash; • O'rnatilgan Jenkins yordami; • Klasterni boshqarish va u bilan ishlash uchun qulay vositalarni taqdim etadi; • Qattiqroq xavfsizlik modeli va o'rnatilgan monitoringi mavjud. Yana bir bor ta'kidlash joizki, OpenShift Kubernetesdan farqli ravishda pullik mahsulotdir. Farqi shundaki: agar biz yalang'och Kubernetesni olsak, barcha muammolarni o'zimiz hal qilamiz. Agar OpenShift haqida gapiradigan bo'lsak, bu pullik yordamning bir qismi sifatida paydo bo'lgan muammolarni hal qiladigan Red Hat mahsulotidir. Xulosa qilib olaylik: Sanoat rivojlanishida dasturni “paketlash” zarurati bor, bu yondashuv, ayniqsa, mikroservis arxitekturasida dolzarbdir. Konteynerlar qadoqlash ilovalarining asosiy vositasidir. Docker konteynerlarni boshqaradi, konteyner tasvirlarini yaratadi, konteynerlarni oladi va ko'chiradi. Bir vaqtning o'zida bir nechta konteynerlarni boshqarish uchun Docker tarkibiga kiritilgan Docker Compose ishlatiladi. Bu dasturlar bepul dastur hisoblanadi. Kubernetes(K8s) konteynerlashtirilgan ilovalarni tartibga solish vositasidir - ularni klasterda joylashtirish, masshtablashtirish va muvofiqlashtirishni avtomatlashtirish. Dockerni o'z ichiga olgan yirik konteynerlashtirish texnologiyalarini qo'llab-quvvatlaydi. K8s ochiq kodli dasturiy ta'minot. OpenShift - bu Kubernetes-ga qo'shimcha funktsiyalarni taklif qiluvchi qo'shimcha. Bu K8-dan farqli o'laroq, korporativ foydalanish uchun mo'ljallangan pullik mahsulotdir. DevOps-ni qutidan tashqarida taqdim etadi: ko'k/yashil, kanareykaning asosiy joylashtirish stsenariylarini qo'llab-quvvatlash, Jenkins uchun o'rnatilgan qo'llab-quvvatlashga ega va klasterni boshqarish va ishlash uchun qulay vositalarni taqdim etadi. U yanada qat'iy xavfsizlik modeli va o'rnatilgan monitoringga ega. Kodlashni xohlayotganlar uchun: Spring Boot ilovasini konteynerga to'plang Postgres-ni Docker-da qanday joylashtirish va Spring-Boot ilovasiga ulanish Webinar: Docker - Konteynerlar bilan qanday ishlash kerak? — Java-da backend ishlab chiqish
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION