So'nggi bir necha yil ichida IT sohasi dasturiy ta'minotni ishlab chiqish va tarqatish sohasida keskin o'zgarishlarni kuzatdi. Bulutli hisoblash, avtomatlashtirish va virtualizatsiya darajasining o'sishi ishlab chiquvchilar, tizim ma'murlari va korxonalar infratuzilmani boshqarishni tubdan o'zgartirdi. Bir necha yil oldin korporativ ma'lumotlar markazidan tashqarida muhim dasturlarni ishga tushirish imkonsiz bo'lib tuyuladi. Biroq, hozirgi sur'atda turish uchun, tashkilotlar o'zlarining infratuzilmasini Google Computer, Azure va AWS kabi bulutli xizmatlarga nafaqat vaqtni tejash, balki qo'shimcha xarajatlarni kamaytirish maqsadida o'tkazmoqdalar. O'shandan beri tashkilotlar konteynerizatsiya kabi muhim narsalarga e'tibor berishni boshladilar.

Bu 2013 yilda Docker konteyner dvigatelining birinchi chiqarilishi bilan boshlangan bo'lib, bu foydalanuvchilarga dasturlarni konteynerlar deb nomlanuvchi kichik, qayta ishlatiladigan muhitga qulay va samarali ravishda joylashtirish imkonini beradi. O'sha paytdan boshlab korxonalar tarqatishni soddalashtirish va ko'chma imkoniyatlarni oshirish uchun eski ilovalarni qadoqlash uchun konteynerlardan foydalanishni boshladilar. Docker-ning g'oyasi dasturni tarqatish uchun kerak bo'lgan barcha bog'liqliklari bilan bitta, standartlashtirilgan birlikka yig'ish edi. Zamonaviy bulutli infratuzilmani yaxshiroq boshqarish uchun Docker va Kubernetesni yaxshiroq tushunish kerak. Biz ushbu maqola orqali xuddi shu narsani taqdim etmoqchimiz va ikkalasining farqini tushunishga yordam beramiz.

Kubernetes nima?

Kubernetes - bu ochiq manbali loyiha va konteynerli dasturlarni joylashtirish, miqyosi va boshqarilishini avtomatlashtiradigan ekotizim. Kichik va katta miqyosda konteynerga asoslangan dasturlarni joylashtirish va boshqarishni avtomatlashtirish uchun dunyodagi eng mashhur orkestr platformalaridan biridir. Google qidiruv giganti 2014 yilda Kubernetes loyihasini ochdi, ammo keyinchalik Cloud Native Computing Foundation (CNCF) ga qo'shildi va konteynerga asoslangan dasturlar sohasida shubhasiz etakchiga aylandi. Kubernetes DevOps va IT infratuzilmani boshqarish usulida inqilob qildi.

Kubernetes-dan foydalanib, bir nechta klasterli tugunlarda konteynerli dasturlarni osongina ishlatish mumkin. Kubernetes orkestri rejalashtirish, ish yukini taqsimlash va masshtablashni o'z ichiga oladi. Bu Docker idishlari klasterini boshqarish uchun dasturiy ta'minot.

Docker nima?

Docker - bu korxonalarga tayyor konteyner platformasi va dasturlarni konteynerlarga joylashtirishni avtomatlashtiradigan ochiq manbali dvigatel. Docker platformadagi ichki vosita sifatida xizmat qiluvchi kompaniya, dotCloud sifatida yaratilgan. U 2013 yilda ommaga ochiq manba sifatida chiqarildi. Uning kod kodi GitHub-da hamma uchun bepul mavjud.

Docker dasturlashtirilgan vosita virtualizatsiya qilingan konteynerni boshqarish muhiti ustiga qo'shadi. Oddiy qilib aytganda, Docker - bu Linux uchun texnologiya bo'lib, tizim ishlab chiquvchilariga dasturni talab qilinadigan barcha qismlari bilan paketlash imkonini beradi. U juda yengil va nihoyatda sodda va ishlab chiquvchilar yozish kodi yozilgan muhit ilova joylashtirilgan muhitga mos kelishiga ishonch hosil qilish orqali mustahkamlikni oshirish uchun mo'ljallangan.

Kubernetes va Docker o'rtasidagi farq

  1. Kubernetes va Docker ishtirok etgan texnologiyalar
  • Kubernetes va Docker ikkalasi ham ishlab chiqaruvchilarga dasturni zarur bo'laklari bilan paketlashlariga imkon beradigan konteynerga asoslangan dasturlarni joylashtirish va boshqarishni samarali va samarali avtomatlashtirish uchun keng qamrovli de-fakto echimlar. Biroq, ikkalasi ham bir-biri bilan uyg'unlikda ishlaydigan tubdan farqli texnologiyalar. Docker - bu Docker konteynerlarini qurish, sozlash va tarqatish uchun korxonaga tayyor konteyner platformasi, Kubernetes esa Pods deb nomlanuvchi Docker konteynerlari klasterini boshqarish uchun ekotizimdir. Kubernetes bir nechta mashinada ko'p sonli konteyner bilan ishlash kerak bo'lganda rasmga keladi.
  1. Kubernetes va Docker me'morchiligi
  • Docker o'zining Docker Swarm nomli idishlari uchun o'zining mahalliy klasterlash echimidan foydalanadi, bu siz xizmatlarni joylashtirishingiz mumkin bo'lgan Docker xostlarining klasteridir. Swarm oddiy arxitekturaga ega bo'lib, u bir nechta Docker xostlarini birlashtiradi va shu klaster tepasida standart Docker API-ga xizmat qiladi. Bu allaqachon Docker API-ni qo'llab-quvvatlaydigan vositalar bilan integratsiyani osonlashtiradi. O'z navbatida, Kubernetes - bu mijoz-server arxitekturasiga rioya qiladigan orkestrlash vositasi, ammo Docker-dan farqli o'laroq, bu to'liq echim emas va uning funktsiyalarini kengaytirish uchun maxsus plaginlardan foydalanadi.
  1. Kubernetes va boshqalar yuklarni muvozanatlash. Doker
  • Docker Swarm, Podernetes ekotizimida bir nechta konteynerlardan iborat birliklarni rejalashtiruvchi Pods kontseptsiyasiga asoslanadi va agar mavjud bo'lsa, avtomatik ravishda tugunlar klasterida taqsimlanadi. Konteynerdagi podkastlar xizmat sifatida aniqlanganda yuklarni muvozanatlash vositasi o'zining yagona tugunlari orqali o'rnatiladi. Kubernetesda arxitekturasi tufayli yuklarni muvozanatlash qutidan chiqadi va bu juda qulay. Xizmatlar barcha Pod-larga tarmoq trafigini taqsimlovchi o'rnatilgan yuklarni muvozanatlashtiruvchiga ega. Xizmatni yaratishda avtomatik ravishda bulutli tarmoq yukini muvozanatlash vositasini yaratish imkoniyati mavjud.
  1. Masshtabliligi
  • Docker nusxa ko'chirishdan nusxa ko'chirish modeliga tayanadi, shunda dasturga o'zgartirishlar kiritish juda tez amalga oshiriladi va faqat siz o'zgartirishni xohlagan narsalar o'zgartiriladi. Shuningdek, u xizmatga yo'naltirilgan va mikroservislarning arxitekturasini qo'llab-quvvatlaydi, bu erda ilova yoki xizmat bir-biriga bog'langan konteynerlar taqdim etiladi. Bu sizning ilovalaringizni tarqatishni, o'lchashni va disk raskadrovka qilishni osonlashtiradi, tez va oson tarqatishni amalga oshiradi. Kubernetesning asosiy funktsionalligi - bu resurslardan samarali foydalanish bilan kengaytiriladigan Kubernetes infratuzilmasidagi konteynerlarga yuklarni rejalashtirish qobiliyati.

Kubernetes va Docker: Taqqoslash jadvali

Kubernetes va boshqalar haqida qisqacha ma'lumot. Doker

Kubernetes ham, Docker ham konteynerga asoslangan dasturlarni joylashtirish va boshqarishni samarali va samarali avtomatlashtirish uchun keng qamrovli de-fakto echimlar bo'lsa-da, ular mutlaqo boshqa texnologiyalardir.

Docker dasturi yozilayotgan va sinovdan o'tgan, joylashtirilgan va tarqatilgan kod o'rtasidagi vaqt aylanishini qisqartirishga qaratilgan. Docker servisga yo'naltirilgan va mikroservislarning arxitekturasini qo'llab-quvvatlaydi va o'zining Docker Swarm deb nomlangan o'zining mahalliy klasterli echimidan foydalanadi. O'z navbatida, Kubernetes bir nechta mashinada ko'p miqdordagi konteyner bilan ishlash kerak bo'lganda paydo bo'ladi.

Adabiyotlar

  • Tasvir krediti: https://upload.wikimedia.org/wikipedia/commons/thumb/0/09/Docker-linux-interfaces.svg/521px-Docker-linux-interfaces.svg.png
  • Tasvir krediti: https://commons.wikimedia.org/wiki/File:Kubernetes.png
  • Krochmalski, Yaroslav. Java dasturchilari uchun Docker va Kubernetes. Birmingem: Packt Publishing, 2017. Chop etish
  • Renzo, Arik. Ansible bilan konteynerizatsiya. 2. Birmingem: Pakt nashriyoti, 2017. Chop etish
  • Sayfan, Gigi. Kubernetesni o'zlashtirish. Birmingem: Packt Publishing, 2018. Chop etish