Docker-шмокер и Kubernetes. Что это и зачем.

В этой статье мы на пальцах разберемся с такими вещами как Docker и Kubernetes. Что это значит и зачем использовать.

Чем полезны контейнеры

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

Техническим же специалистам контейнеры прежде всего полюбились за возможность упаковать приложение вместе с его средой запуска, решая тем самым проблему зависимостей в разных окружениях. Например, различие версий языковых библиотек на ноутбуке разработчика и в последующих окружениях рано или поздно приведёт к сбоям, и нужно будет как минимум потратить время на их анализ, а как максимум — решать проблему проникших в продакшен багов. Использование контейнеров устраняет проблему «А на моей машине все работало! ¯\_(ツ)_/¯».

Также контейнеры позволяют сократить время разработки приложения и упрощают управление им в продакшене благодаря лёгкости в настройке и изменении конфигурации, возможности версионировать её вместе с кодом приложения и удобным инструментам оркестрирования, позволяющим быстро масштабировать инфраструктуру. Кроме того, фактическое отсутствие привязки контейнеров к хостинговой платформе даёт огромную гибкость при выборе или смене провайдера — вы можете запускать их без принципиальных отличий в конечном результате на личном компьютере, bare metal серверах и в облачных сервисах.

Читайте также:  Почтовый агент. Рейтинг лучших почтовых клиентов

Вывод

В этой статье я выделил риск, связанный с запуском контейнера Docker с настройками по умолчанию для пользователя root. Я также предложил несколько способов преодолеть этот риск.

  1. Если вы запускаете пользовательский образ, создайте нового непривилегированного пользователя и укажите его в своем Dockerfile.
  2. Если вы используете сторонние изображения, вы можете установить контекст безопасности на уровне контейнера.
  3. Еще один способ — создать политику безопасности pod, которая не позволит ни одному контейнеру работать с привилегиями root.

Проверка готовности отказоустойчивого кластера

Перед созданием кластера необходимо убедиться, что все настройки правильно сконфигурированы. Запустите Failover Cluster Manager из меню Start, прокрутите до раздела Management и кликните Validate Configuration.

Проверка готовности отказоустойчивого кластера

Выберите для валидации оба сервера.

Проверка готовности отказоустойчивого кластера

Выполните все тесты. Там же есть описание того, какие решения поддерживает Microsoft.

Проверка готовности отказоустойчивого кластера

После успешного прохождения всех нужных тестов, можно создать кластер, установив флажок Create the cluster now using the validated nodes (создать кластер с помощью валидированных узлов), или это можно сделать позже. Если во время тестирования возникали ошибки или предупреждения, можно просмотреть подробный отчет, кликнув на View Report.

Проверка готовности отказоустойчивого кластера

В чём разница между Docker и Kubernetes?

Geekflare

Что такое Docker?

Особенности Docker

  • простая и быстрая настройка. Развертывание приложений происходит за меньшее время;
  • высокая производительность;
  • изоляция приложений — Docker использует для их запуска контейнеры;
  • управление безопасностью.

Что такое Kubernetes?

Особенности Kubernetes

  • автоматизация ручных процессов;
  • балансировка нагрузки. Kubernetes хорош в обеспечении работоспособности и быстродействия в случае увеличения трафика;
  • самовосстановление. Инструмент перезапускает неработоспособные контейнеры, перемещает, а также удаляет контейнер, не отвечающий шаблону пользователя;
  • оркестровка: пользователи могут автоматически монтировать систему хранения на свой вкус.

Сравнение Docker и Kubernetes

Сходства Docker и Kubernetes:

  • микросервисная архитектура;
  • в основном написаны на Go, что позволяет отправлять их в виде облегченных двоичных файлов;
  • оба используют файлы в удобочитаемом формате YAML.
Читайте также:  Выбор дистрибутива Linux для слабого компьютера

Что же выбрать: Docker или Kubernetes?

Сферы применения

Docker:

  • если приложение подходит для работы в контейнере;
  • приложение не нуждается в графическом интерфейсе;
  • приложение должно быть развернуто последовательно.

Kubernetes:

Что такое Docker Swarm?

Принципы работы:

  • обратная совместимость;
  • безопасность по умолчанию;
  • устойчивая и отказоустойчивая архитектура;
  • простой, но динамичный пользовательский интерфейс.

Сравнение Kubernetes и Docker Swarm

Развертывание:KubernetesDocker Swarm:Установка:Kubernetes:Docker SwarmФункционирование:Docker Swarm:Ведение журнала:Kubernetes:Docker Swarm:RiemannМасштабирование:Kubernetes:Docker Swarm:Сеть:Kubernetes:Docker Swarm

Kubernetes

Представьте, что вы разрабатываете высоконагруженный WEB-сервис. По мере увеличения числа пользователей, вам нужно увеличивать ресурсы сервера, чтобы он мог поддерживать хорошую производительность. Как минимум вы начинаете создавать дополнительные контейнеры (реплики) базы данных. И вам нужно объединить их в кластер. А кластером из контейнеров нужно управлять: грамотно распределять нагрузку между ними; налаживать связь между контейнерами, чтобы они «общались между собой»; следить, чтобы контейнеры не отвалились, а если отвалится какой-нибудь, то чтобы другой взял на себя его функции.

Представили сколько это работы? Но вам не всегда может быть нужно много реплик. Например у вас сезонный сервис и летом посетителей вообще мало. Тогда ненужные реплики можно убрать, чтобы не платить за дополнительные ресурсы сервера.

Вот тут-то и нужен Kubernetes.

Kubernetes

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

Это из Wikipedia

Проще говоря, всю работу по управлению кластером контейнеров Kubernetes берет на себя. Надо создать новые контейнеры — Kubernetes сделает. Надо убрать лишние конетейнеры — Kubernetes сделает. Что? Как наладить связь в кластере между контейнерами? Так Kubernetes все это сделает.

Читайте также:  useradd — создание нового пользователя linux

Можете думать о Kubernetes, как о дирижере в оркестре.