Kubernetes

Kubernetes против Docker

Kubernetes против Docker
Kubernetes и Docker на подъеме. Обе технологии имеют очень разные корни, но в последние годы они переплелись так, как никто от них не ожидал. Сообщества собрались вместе, пакеты портированы между всеми возможными операционными системами, и, будучи в основном с открытым исходным кодом, они породили множество спутниковых проектов и конкурентов.

Все это может быть ошеломляющим для любого нового пользователя, пытающегося разобраться в этой относительно новой парадигме. Давайте обсудим основные различия между Kubernetes и Docker, сначала более глубоко погрузившись в то, что на самом деле означают эти технологии. Если вы знакомы с Docker или K8 (сокращение от Kubernetes), вы можете пропустить и прочитать раздел TL; DR.

Что такое докер?

Docker - это технология контейнеризации. Вы можете запускать несколько приложений изолированно друг от друга в одной операционной системе без необходимости виртуализации, но со всеми преимуществами виртуализированной среды. Думайте о контейнерах Docker как о действительно легких виртуальных машинах для Linux (также для Windows, но это не так популярно).

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

Однако Docker - это единое системное приложение. Это означает, что он запускает и управляет контейнерами в любой системе, в которой он работает.  Огромным приложениям с большим объемом трафика и миллионами запросов, поступающих к ним со всего мира, требуется более одного сервера. Вот где появляется Kubernetes.

Что такое Kubernetes?

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

Одна из технологий контейнеризации, которую использует Kubernetes, - это Docker. Kubernetes состоит из целого ряда различного программного обеспечения для управления вашим кластером. Предоставляет агент управления Кубеадм, который работает на нескольких выбранных главных узлах (узлы - это VPS или физические серверы), а затем есть рабочие узлы с установленным на них Docker с kubectl который общается с движком Docker, чтобы автоматизировать процесс раскрутки контейнеров или их снятия. Агенты kubectl, работающие на всех рабочих узлах, принимают заказы от главного узла и предоставляют им обратную связь о состоянии приложения, запущенного на их узле. Примерно так обычно работает установка K8.

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

Точно так же вы можете предоставлять модули другим модулям как службы (также известные как микросервисы), чтобы у вас было 50 модулей SQL / Redis, представленных в качестве службы хранилища данных для внешнего интерфейса вашего приложения и т. Д. Преимущество, которое вы получаете, заключается в том, что 50 модулей могут работать в нескольких центрах обработки данных, и даже если некоторые из них выйдут из строя, другие воспользуются слабиной.

Kubernetes - это гораздо больше, чем просто технология. Это способ рассуждать о запуске вашего программного обеспечения в распределенной системе.

Kubernetes без Docker

Как видно из вышеизложенного, K8 сильно зависит от контейнеров. Docker - лишь одна из многих технологий контейнеризации, которые существуют. Другие включают rkt от CoreOS, LXC от Canonical, Jails на FreeBSD и Zones в Illumos и SmartOS. Kubernetes потенциально может быть реализован поверх любой из этих технологий. На самом деле он неплохо работает с rkt от CoreOS.

Однако из-за популярности Docker сообщество и организации сделали все возможное, чтобы Docker предлагал все и вся, о чем его просят спецификации Kubernetes. Именно по этой причине даже такие проекты, как Docker на macOS и ПК, сертифицированы Kubernetes.

Докер без Kubernetes

Так как Kubernetes имеет одну из лучших поддержки при использовании Docker, Docker сам сильно полагается на Kubernetes для развертывания контейнеров в большом масштабе. У Docker есть собственная система управления и оркестровки контейнеров, известная как Docker Swarm, которая должна быть альтернативой Kubernetes.

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

TL; DR

Короче говоря, Docker - это технология контейнеризации, предназначенная для работы на одном компьютере. Kubernetes - это технология управления, которая управляет большим количеством контейнеров на многочисленных вычислительных узлах.

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

Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...
Обзор беспроводной мыши Microsoft Sculpt Touch
Я недавно прочитал о Microsoft Sculpt Touch беспроводная мышь и решил ее купить. Побывав некоторое время, я решил поделиться своим опытом с ним. Эта б...
Экранный трекпад и указатель мыши AppyMouse для планшетов с Windows
Пользователи планшетов часто пропускают указатель мыши, особенно когда они привыкли пользоваться ноутбуками. Смартфоны и планшеты с сенсорным экраном ...