Кубернети

Кубернетис срещу Докер

Кубернетис срещу Докер
Kubernetes и Docker са във възход. И двете технологии имат много различни корени, но се преплитат през последните години по начини, по които никой не е очаквал от тях. Общностите се обединиха, пакетите се пренасят между всички възможни операционни системи и като до голяма степен са с отворен код, те породиха множество спътникови проекти и конкуренти.

Всичко това може да бъде поразително за всеки нов потребител, който се опитва да осмисли тази сравнително нова парадигма. Нека да обсъдим основните разлики между Kubernetes и Docker, като първо се задълбочим в това, което всъщност означават технологиите. Ако сте запознати с Docker или K8 (съкратено от Kubernetes), можете да пропуснете напред и да прочетете раздела TL; DR.

Какво е Docker?

Docker е технология за контейнеризиране. Можете да стартирате множество приложения, изолирани едно от друго в една и съща операционна система, без да е необходима виртуализация, но всички предимства на виртуализираната среда. Помислете за контейнерите на Docker като за наистина леки виртуални машини за Linux (също Windows, но това не е толкова популярно).

Docker има 3 основни компонента, първо двигателят на Docker, който работи във фонов режим и управлява работещи контейнери и тяхното осигуряване. Той излага REST API, който клиентът на Docker консумира и това позволява на потребителите да взаимодействат с Docker и да създават нови контейнери или да управляват работещите.

Docker обаче е едно системно приложение. Това означава, че той изпълнява и управлява контейнери на каквато и система да се изпълнява.  Огромни приложения с тон трафик и милиони заявки, които ги удрят от цял ​​свят, се нуждаят от повече от един сървър. Тук идва Kubernetes.

Какво е Kubernetes?

Kubernetes се възползва от технологиите за контейнеризиране, като Docker, за да изпълнява множество реплики на вашето приложение на сървъри и центрове за данни по целия свят.

Една от технологиите за контейнеризиране, която Kubernetes използва, е Docker. Kubernetes се състои от цял ​​набор от различни софтуери за управление на вашия клъстер. Той осигурява агент за управление kubeadm, който работи на няколко избрани главни възли (възлите са VPS или физически сървъри) и след това има работни възли с инсталиран Docker с тях с kubectl който говори с двигателя на Docker за автоматизиране на процеса на предене на контейнери нагоре или свалянето им. Агентите kubectl, работещи на всички работни възли, приемат поръчки от главния възел и им дават обратна връзка за състоянието на приложението, изпълнявано на техния възел. Приблизително така работи инсталацията K8.

Можете също да обедините различни свързани Docker контейнери в пакети (наречени шушулки). Например можете да обедините SQL база данни и контейнери за кеш на Redis заедно в под, тъй като искате базата данни и кешът й да съществуват едновременно.

По същия начин можете да изложите шушулките на другите шушулки като услуги (известни също като микроуслуги), така че можете да имате 50 SQL / Redis шушулки, изложени като услугата за съхранение на данни, в предния край на вашето приложение и т.н. Предимството, което получавате, е, че 50-те шушулки могат да се движат в няколко центъра за данни и дори ако няколко от тях паднат надолу, други ще влошат.

Kubernetes е много повече от технология. Това е начин за разсъждения относно пускането на вашия софтуер в разпределена система.

Kubernetes без Docker

Както можете да кажете от горното, че K8 разчита много на контейнери. Docker е само една от многото технологии за контейнеризиране, които съществуват там. Другите включват rkt от CoreOS, LXC от Canonical, затвори на FreeBSD и зони в Illumos и SmartOS. Kubernetes потенциално може да бъде внедрен върху която и да е от тези технологии. Всъщност работи доста добре с rkt от CoreOS.

Въпреки това, поради популярността на Docker, общността и организациите са надхвърлили и гарантирали, че Docker предлага всичко и всичко, което спецификациите на Kubernetes изискват. Поради тази причина дори проекти като Docker за macOS и PC са сертифицирани от Kubernetes.

Docker без Kubernetes

Начинът, по който Kubernetes има една от най-добрите поддръжки, докато използва Docker, самият Docker разчита много на Kubernetes за разгръщане на контейнери в голям мащаб. Docker има собствена система за управление и оркестрация на контейнери, известна като Docker Swarm, която се предполага, че е алтернатива на Kubernetes.

Въпреки че Docker Swarm е родна технология на Docker, Kubernetes е това, което хората искат, а сегашните прогнози на пазара показват, че K8 ще спечели най-големия пазарен дял. Docker дължи своя успех до голяма степен благодарение на симбиозата си с Kubernetes.

TL; DR

Накратко, Docker е технология за контейнеризиране, предназначена да работи на един компютър. Kubernetes е технология за управление, която управлява голям брой контейнери в множество изчислителни възли.

Docker е една от най-подходящите технологии там, с която да изградите своя стек K8. Започвате като се уверите, че приложението ви се изпълнява като докер контейнер, след което K8 гарантира, че този контейнер може да се мащабира по целия свят, ако възникне необходимост от това в бъдеще.

Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...
Пренастройте бутоните на мишката си по различен начин за различен софтуер с X-Mouse Button Control
Може би се нуждаете от инструмент, който може да промени контрола на мишката с всяко приложение, което използвате. Ако случаят е такъв, можете да изпр...
Преглед на безжична мишка на Microsoft Sculpt Touch
Наскоро прочетох за Microsoft Sculpt Touch безжична мишка и реших да я купя. След като го използвах известно време, реших да споделя опита си с него. ...