fbpx

Что лучше изучать в первую очередь — Docker или Kubernetes?

Что лучше изучать в первую очередь — Docker или Kubernetes?

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

Как только вы разработаете архитектуру и поймете, почему вы хотите использовать Docker и Kubernetes, возникает вопрос: с чего начать?

В этой статье вы узнаете о том, что такое Docker, что такое Kubernetes и какой из них вам следует изучить в первую очередь.

Что такое Docker

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

Подумайте о Docker или, если на то пошло, о любом контейнерном движке (containerd, CRI-O и т.д.) как о двигателе автомобиля. Двигатель автомобиля сам по себе, подключенный к нужным компонентам и с нужным топливом, может сразу же завестись. Он может работать, но не может никуда поехать. Двигатель как бы застревает на месте.

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

Именно здесь в игру вступает оркестровка (Kubernetes).

Что такое Kubernetes

Подумайте о Kubernetes, как о колесах и кузове автомобиля. У вас есть двигатель, машина заводится, работает, но теперь ей нужно передвигаться. Она должна переместиться из точки А в точку Б. Возможно, в машине нужно хранить одного человека или кучу людей (подумайте о том, что люди в машине — это несколько приложений).

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

Из коробки вы получаете тонну удивительных возможностей, включая:

  • Самовосстановление
  • высокая доступность
  • Автоматическое масштабирование
  • Управление сетью
  • И многое другое

Что вы должны изучить в первую очередь

Существует более или менее широкая дискуссия о том, стоит ли изучать docker перед kubernetes, и это правда, но спор вокруг этого не в том, что вы должны сначала изучить Docker. Спор заключается в том, что сначала нужно изучить механизм контейнеризации. У Docker много вариантов использования, и один из них — это механизм контейнеризации. Однако существует несколько движков контейнеризации, включая:

  • Rkt
  • runC
  • containerd
  • CRI-O
  • Контейнеры Windows на Hyper-V
  • LXC

Хотя все контейнерные механизмы работают по-разному, у них одна цель — запустить несколько изолированных экземпляров приложения на одном ядре ОС. Изолированные экземпляры — это контейнеры. Эти контейнеры работают в виртуализированной среде поверх операционной системы (не путать с виртуализацией на уровне системы, например, VMWare’s ESXi). Контейнеры — это среда, которая работает на операционной системе, но в то же время полностью отделена от операционной системы.

Когда речь заходит об изучении сначала Docker или Kubernetes, и вы спрашиваете себя d o I need to learn Docker before Kubernetes? Ответ заключается в том, что вместо этого вам следует изучить движки контейнеризации.

Как изучать Docker и Kubernetes

Теперь, когда вы знаете, что такое контейнеризация и оркестровка, вы, возможно, думаете, как лучше всего изучить docker и kubernetes? Ответ ближе, чем вы думаете: прямо на вашем локальном компьютере! В одной из других статей блога CloudTruths, посвященных Kubernetes, вы узнаете, как настроить среду minikube, которую вы можете найти здесь. Minikube — это один из способов локального запуска Kubernetes на вашем ноутбуке или настольном компьютере.

Если вы хотите проявить креативность, вы можете взять пару Rasberry Pi и запустить нечто под названием k3s — это облегченная версия Kubernetes, которая популярна на ARM и edge-устройствах.

Еще один локальный и отличный вариант, который многие используют, — это Docker Desktop. Docker Desktop можно установить как на Windows, так и на macOS, и он позволяет создать локальный кластер Kubernetes, управляемый Docker Desktop.

Если вы не хотите устанавливать Kubernetes вообще, где бы то ни было, вы можете использовать Kubernetes playground Play With Kubernetes, который представляет собой полностью управляемое решение прямо в вашем веб-браузере.

Кластер Kubernetes в реальном мире

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

Если вы хотите создать кластер Kubernetes в AWS полностью автоматизированным способом, ознакомьтесь с этой статьей блога CloudTruth об использовании Terraform для создания кластера Kubernetes.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *