La виртуалдандыру өте кең таралған тәжірибеге айналды, әсіресе бұлтты сервистерде деректер орталықтарындағы серверлерден көбірек алу мүмкіндігі болу керек. Бірақ соңғы кездері контейнерге негізделген виртуалдау енгізілуде, өйткені ол әлдеқайда тиімді басқаруға мүмкіндік береді (кейбір процедураларды қайталамай). Докер мен Кубернетеске қарсы шайқастар дәл осы шыңда туындайды.
Сіз білетін екі өте танымал жоба. Екі оның артықшылықтары мен кемшіліктері және айырмашылықтарымен бұл сіздің қажеттіліктеріңізге сәйкес жоба таңдауға көмектесу кезінде маңызды болуы мүмкін ...
The
Контейнерге негізделген виртуализация дегеніміз не?
Өздеріңіз білетіндей, бірнеше виртуалдандыру түрлерітолық виртуализация, паравиртуализация және т.б. Бұл бөлімде мен сізді шатастыруы мүмкін басқа айнымалыларды енгізбеу үшін виртуалды машиналар мен контейнерлерді орнатқан кезде қолданылатын толық виртуалдандыруға назар аударамын.
- Виртуалды машиналар- Бұл виртуализацияға қол жеткізуге бағытталған тәсіл Ол гипервизорға негізделген, мысалы, KVM, Xen немесе VMWare, VirtualBox, т.б. Бұл бағдарламалық жасақтаманың көмегімен толық физикалық машина (vCPU, vRAM, диск жетектері, виртуалды желілер, перифериялық құрылғылар және т.б.) шығарылады. Осылайша, виртуалды жабдыққа операциялық жүйені (қонақты) орнатуға болады және сол жерден қосымшаларды орнатуға және іске қосуға болады, ол негізгі хосттық жүйеде жасалатын тәсілмен жүзеге асырылады.
- КонтейнерлерБұл тағы бір технология, бұл жүйенің кейбір бөліктерінен шығуға болатын тордың немесе құмсалғыштың түрі біріктіріледі, бұл тиімдірек және портативтілік пен қауіпсіздіктің кейбір артықшылықтарымен (бірақ осалдықтардан босатылмағанымен) . Шындығында, гипервизордың орнына, бұл жағдайларда Docker және Kubernetes сияқты бағдарламалық жасақтама бар, олар оқшауланған қосымшаларды іске қосу үшін хост жүйесінің өзін қолданады. Төменгі жағы - бұл тек жергілікті қолданбаларды хост ОЖ-нің өзінен орналастыруға мүмкіндік береді. Яғни, мысалы, VM-де сіз Windows дистрибутивінде Windows-ты виртуалдандыруға болады, ал Windows-та ол үшін кез-келген жергілікті бағдарламаны іске қосуға болады, контейнерде сіз оны тек хост жүйесі қолдайтын бағдарламалармен жасай аласыз, Linux-тегі жағдай ...
Кеңейту немесе қолдау екенін ұмытпаңыз аппараттық виртуалдандыру, өйткені Intel VT және AMD-V процессордың тек 2% үстеме шығындарын ескере отырып, өнімділікті айтарлықтай жақсарта алды. Бірақ бұл басқа виртуалдандыруға арналған жадқа немесе жад сияқты басқа ресурстарға қолданылмайды, бұл ресурстарға деген үлкен сұранысты білдіреді.
Мұның бәрі қандай контейнерлерді шешуге келеді, қайсысы белгілі бір процестерді қайталаудың қажеті жоқ қосымшаны орналастыра білу. Мысалы, егер сіз Apache серверімен контейнер жасағыңыз келсе, онда сізде виртуалды машинаның барлығында хост операциялық жүйесі, гипервизор, қонақтардың операциялық жүйесі және сол қызметке арналған бағдарламалық жасақтама болуы керек. Екінші жағынан, контейнермен сізде тек аталған қызметті жүзеге асыратын бағдарламалық жасақтама болуы керек, өйткені ол «қорапта» оқшауланған түрде жұмыс істейтін және хост операциялық жүйесінің өзін қолданатын болады. Сонымен қатар, қондырылған ОЖ-ны жою арқылы қосымшаны іске қосу жылдамырақ болады.
Докер дегеніміз не?
Докер бұл Apache лицензиясы бойынша Go бағдарламалау тілінде жазылған және қосымшаларды контейнерлерге орналастыруды автоматтандыру үшін қолданылатын ашық бастапқы жоба. Яғни, бұл бағдарламалық жасақтама контейнерлерді әртүрлі амалдық жүйелерде басқаруға мүмкіндік береді, өйткені ол бірнеше платформада жұмыс істейді.
Докер пайда болған кезде, оның көптеген артықшылықтары болдыжәне ол тез тарады. Операциялық жүйені және қарапайымдылық туралы оқшауланған көзқарас қосымшалары бар контейнерлерді құруға, оларды орналастыруға, масштабтауға және тез орындауға мүмкіндік берді. Қажетті барлық қосымшаларды ресурстарды минималды тұтынумен іске қосу тәсілі.
Қысқаша айтқанда, Docker келесіні ұсынады мүмкіндіктері кілт:
- Қоршаған ортадан оқшаулау.
- Контейнерлерді басқару.
- Нұсқаны басқару.
- Орын / жақындық.
- Шапшаңдық.
- Өнімділік
- Тиімділік.
бірақ ол белгілі бір проблемалардан ада болған жоқсияқты, бұл контейнерлер үйлестіру керек болған кезде, бір-бірімен байланысады. Бұл Кубернеттің құрылуына себеп болған себептердің бірі болды ...
Мен кейінірек түсініктеме беремін Докер үйірі, Мен Docker хосттарының қатарын кластерге топтастыра алатын және осылайша кластерді орталықтан басқаратын, сонымен қатар контейнерлерді ұйымдастыра алатын дәл сол Docker әзірлеушілері жасаған бағдарламалық жасақтама деп түсіндіргім келеді.
Кубернетес дегеніміз не?
Бастапқыда оны Google құрып, кейіннен Cloud Native Computing Foundation қорына берді. Kubernetes Бұл сондай-ақ Docker-ге ұқсас жүйе, Apache лицензиясы бар, ашық бағдарламалық жасақтама және Go бағдарламалау тілі арқылы жазылған. Ол контейнерленген қосымшаларды орналастыруды және басқаруды автоматтандыру үшін қолданылады. Сонымен қатар, ол контейнерлерді, соның ішінде Docker-ді басқарудың әртүрлі орталарын қолдайды.
Сайып келгенде, Кубернетес а оркестр қондырғысы әр түрлі машиналардың контейнерлеріне көмектесу, оларды басқару және олардың арасындағы жүкті бөлуге жауап беретін контейнер. Бұл жобаны осы сценарийлердің маңызды бөлігіне айналдырған ұйым ...
- Автоматтандырылған жоспарлау.
- Өзін-өзі емдеу мүмкіндіктері.
- Автоматтандырылған орналастырулар және орналастырулар.
- Жүктемелерді теңестіру және көлденең масштаб.
- Ресурстарды пайдаланудың жоғары тығыздығы.
- Іскери ортаға бағытталған функциялар.
- Қолданбаларды орталықтандырылған басқару.
- Өздігінен масштабталатын инфрақұрылым.
- Декларативті конфигурация.
- Сенімділік.
Кубернет пен докер
Анықтамадан көріп отырғаныңыздай, екеуі де көп жағынан өте ұқсас, бірақ сізде бар олардың айырмашылықтары, сондай-ақ олардың артықшылықтары мен кемшіліктері бар бәрі сияқты. Мүмкін сіз осы егжей-тегжейлі біле отырып, мақсатыңызға байланысты қайсысын таңдауыңызды білесіз деп ойлайсыз.
Алайда, мәселе бұл одан күрделі нәрсе. Әңгіме Докерге қарсы Куернетке қатысты емес, өйткені сіз әр түрлі нәрселерді салыстырғанға ұқсайтын болар едіңіз және сіз біреуін және екіншісін таңдау керек деп ойлау қателіктеріне ұрынасыз. Docker vs Kubernetes-тің нәтижесі ақылға сыймайды, керісінше контейнерге қосымшаларды жақсырақ жеткізу және масштабтау үшін екі технологияны да байланыстырған жөн.
Салыстыру ең орынды болар еді Кубернетпен бірге докер үйірі. Бұл сәтті болар еді, өйткені Docker Swarm - бұл Docker контейнер кластерін құруға арналған оркестр технологиясы. Дегенмен, ол кезде де бұл толығымен сәтті болмас еді ... Шындығында, Кубернетес кластерде жұмыс істеуге арналған, өндіріс ауқымындағы түйіндердің кластерін тиімді үйлестіре алатын, ал Докер оны бір режимде жасайды.
Докер мен Кубернетестің айырмашылықтары
Егер сіз білгіңіз келсе, басқаларын үнемдеңіз алшақтықтар Docker Swarm және Kubernetes арасында олар:
- Кубернетке көптеген нұсқалар кіреді дербестендіру Docker Swarm-да жоқ.
- Docker Swarm болып табылады оңайырақ қарапайымдылығына байланысты конфигурациялау. Сонымен қатар, Docker экожүйесіне ену оңайырақ.
- Оның орнына Ақаулыққа төзімділік Кубернетес жоғары, бұл қол жетімді серверлер сияқты ортада жағымды болуы мүмкін.
- Docker Swarm болып табылады тезірек контейнерлерді орналастыру мен кеңейтуге қатысты.
- Кубернет өз ұсыныстарына арналған үлкен кепілдіктер кластер күйлеріне
- El жүктемені теңдестіру Кубернетесте бұл тепе-теңдікті жақсартуға мүмкіндік береді, дегенмен ол Docker сияқты автоматты емес.
- Кубернетес ұсынады жақсы икемділіктіпті күрделі қосымшаларда.
- Docker Swarm 2000 жылға дейін қолдау көрсете алады түйіндер, Кубернетестегі 5000-мен салыстырғанда.
- Кубернетес оңтайландырылған көптеген шағын кластерлер үшін, ал Докерлер үлкен кластерге арналған.
- Кубернетес күрделі, Қарапайым докер.
- Кубернеттер рұқсат ете алады сақтау кеңістігін бөлісу кез-келген контейнер арасында, ал Docker шектеулі және тек сол қаптамадағы контейнерлер арасында ортақ пайдаланылады.
- Docker Swarm пайдалануға мүмкіндік береді үшінші тарап бағдарламалық жасақтамасы журнал жүргізу және бақылау үшін Кубернетеске өзінің кіріктірілген құралдары кіреді.
- Docker Swarm 95.000-мен шектелген контейнерлер, ал Кубернетес 300.000 дейін қолдай алады.
- Докерде а үлкен қауымдастық Кубернетес Microsoft, Amazon, Google және IBM сияқты компаниялардың қолдауына ие.
- Докерді қолданады компаниялар Spotify, Pinterest, eBay, Twitter және т.б. Кубернеттер 9GAG, Intuit, Buffer, Evernote және т.б.
Артықшылықтары
Бір-бірінен алшақтықты көріп, кезек енді келді Лас Вентажас әрқайсысы:
- Kubernetes:
- Қызметті бұршақпен оңай ұйымдастыру.
- Бұлт индустриясында мол тәжірибесі бар Google компаниясы әзірледі.
- Қауымдастық пен контейнерді оркестрлеудің үлкен құралдары.
- Жергілікті SAN және қоғамдық бұлттарды қоса алғанда, сақтаудың әртүрлі нұсқалары.
- Докер:
- Тиімді және қарапайым бастапқы орнату.
- Вариацияларды тексеру үшін контейнер нұсқаларын қадағалайды.
- Жылдамдық.
- Өте жақсы құжаттама.
- Қолданбалар арасында жақсы оқшаулау.
Кемшіліктері
Бұл тұрғыда кемшіліктері:
- Kubernetes:
- Неғұрлым күрделі көші-қон.
- Күрделі орнату және конфигурациялау процесі.
- Қолданыстағы Docker құралдарымен үйлеспейді.
- Қолмен кластерді енгізу өте күрделі.
- Докер:
- Бұл сақтау параметрін ұсынбайды.
- Нашар бақылау.
- Белсенді емес түйіндерді автоматты түрде қайта бағдарламалау мүмкін емес.
- Әрекеттер CLI-де орындалуы керек.
- Бірнеше даналарды қолмен басқару.
- Сізге басқа құралдарды қолдау қажет.
- Кластерді қолмен орналастыру қиын.
- Медициналық тексерулерге қолдау жоқ.
- Docker коммерциялық компания болып табылады және оның кейбір маңызды компоненттері, мысалы, Docker Engine және Docker Desktop, ашық көз болып табылмайды.
Кубернет пен докер: Қорытынды
Сіз ойлағандай, оны таңдау оңай емес бірінің немесе екіншісінің арасында. Кубернет пен Докер арасындағы шайқас көрінуі мүмкін қарағанда күрделі. Ал бәрі сіздің мақсатыңызға байланысты болады. Біреуі немесе басқасы жақсы болады, бұл сіздің таңдауыңыз болуы керек.
Көптеген басқа жағдайларда, Кубернетті Докермен бірге қолдану жақсы болады барлық нұсқалардың ішінен. Екі жоба да жақсы жұмыс істейді. Бұл инфрақұрылым қауіпсіздігін және қосымшалардың жоғары қол жетімділігін жақсарта алады. Сіз тіпті қолданбаларды ауқымды ете аласыз.
3 пікір, өз пікіріңізді қалдырыңыз
Көп рақмет ! Маған түсінікті бола бастады, және бәрінен бұрын, көбінесе, ең жақсысын таңдау мәселесі болмаса, жақсысы да, жаманы да жоқ.
Мүмкін маған сценарийдің қайсысының немесе басқасының жақсы жұмыс істейтінін түсіну үшін нақты мысал керек, және бұл жағдайда оларды бірге қолдану керек.
Сондай-ақ, бізде бағдарламалық жасақтаманың қандай баламалары бар?
Контейнерлер туралы біле бастаған біз нақты жағдайларды ірі компанияларда жұмыс күтпей-ақ көре аламыз.
Менің ойымша, бұл жерде бір нәрсе дұрыс анықталмаған, докер - контейнер менеджері, оны оркестрмен салыстыруға болмайды.
Салыстыру Docker Swarm мен Kubernetes арасында болады.
Шамасы, осы керемет жазбаны жасау кезінде (менің ойымша, шынымен де қызықты) кейбір терминдер айтылды.