Много слышали о Kubernetes, но не уверены, что это такое?

Что такое Kubernetes?

Kubernetes – это инструмент с открытым исходным кодом, который заботится о оркестровке контейнеров.

Он автоматизирует развертывание контейнера, непрерывное масштабирование и удаление, балансировку нагрузки контейнеров и т. д.

Google изначально разработал Kubernetes на языке программирования Go.

В настоящее время это лидер на рынке оркестрации контейнеров. Kubernetes – это идеальная платформа для размещения приложений микросервисов, которые динамически масштабируются.

Когда вы работаете в производственной среде, Kubernetes является наиболее предпочтительной и безопасной платформой для оркестрации контейнеров.

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

Облачная платформа Google (GCP) позволяет запускать Kubernetes всего за несколько кликов.

Она поддерживается другими облачными провайдерами, такими как AWS и Azure.

И есть несколько доступных управляемых платформ Kubernetes.

Почему Kubernetes ?


Ранее борьба между разработчиками и тестировщиками была обычным делом.

Среды раньше были разными для всех; то, что работало в системе разработчика, не работало в системе тестеров.

Теперь, когда большинство организаций используют контейнеры, проблемы, возникающие из-за различий в среде, больше не возникают.

Но организация и запуск нескольких контейнеров также не простая задача.

Когда вы работаете с динамическими приложениями, масштабируя их вверх / вниз, количество контейнеров является обычным делом.

Выполнение таких задач вручную может быть сложным и рискованным.

Следовательно, необходим инструмент оркестрации контейнеров, и именно поэтому нужен Kubernetes.

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

Их много, но ниже приведены некоторые из лучших.

# Автоматическая упаковка

Kubernetes упаковывает ваше приложение и автоматически размещает контейнеры в соответствии с их требованиями и доступными ресурсами

# Обнаружение службы и балансировка нагрузки

Kubernetes автоматически устанавливает систему хранения по вашему выбору.

# Оркестровка хранилищ

Это может быть локальное хранилище или провайдер общедоступного облака, такой как AWS.

# Самовосстановление

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

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

# Горизонтальное масштабирование

Вы можете быстро масштабировать свои приложения с помощью простой команды.

Эта команда может быть запущена на CLI или через панель управления Kubernetes.

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

# Автоматический откат

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

Не все экземпляры обновляются одновременно, что обеспечивает высокую доступность.

Если что-то пойдет не так, то Kubernetes немедленно откатит то, что изменится.

Kubernetes терминология

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

# Pod

Он представляет один или несколько контейнеров, работающих в кластере.

# Service

Абстрактный способ доступа к поду / приложению.

# Namespace

Используется для удаления конфликта имен в кластере.
Поддерживает несколько виртуальных кластеров в одном физическом кластере.

# Node

Узел кластера Kubernetes

# Cluster

Состоит из группы узлов, выполняющих контейнерные приложения в Kubernetes.

# Annotation

Метка для хранения данных, необходимых для ресурсов.

# Volume

Это каталог данных, который содержит контейнеры в вопросе доступа к поду.

# ReplicaSet

Несколько копий запущенных копий.

# Label

Предоставление имени объектам Kubernetes, чтобы его можно было идентифицировать в системе.

# Kubelet

Это агент, который работает на каждом узле и проверяет, работают ли контейнеры в подах.

# Kubectl

Утилита командной строки для взаимодействия с сервером API Kubernetes.

# Kube-proxy

Сетевой прокси, который содержит все сетевые правила на каждом узле в кластере.

Kubernetes и Docker

Теперь вы можете задуматься, чем Kubernetes отличается от Docker.
Фраза Kubernetes против Docker может вводить в заблуждение.

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

Но с Kubernetes все становится автоматизированным.

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

Kubelet в Kubernetes отвечает за мониторинг этих контейнеров и сбор их информации на главном узле.

Итак, основное отличие состоит в том, что вместо администраторов, которые говорят Docker, что делать, в Kubernetes все автоматизировано.

Для оркестрации контейнеров используется еще один инструмент – Docker Swarm.

Итак, в чем разница между ними?

Kubernetes vs. Docker Swarm

Kubernetes Docker Swarm
Установка сложна Установка проста
Большое комьюнити Маленькое комьюнити
Может легко организовать сотни контейнеров
Хорош для оркестровки 10-20 контейнеров
Kubernetes Dashboard предоставляет графический интерфейс
Нет графического интерфейса (Можно конечно доставить Portainer)
Поддерживает автоматическое масштабирование
Не поддерживает автоматическое масштабирование
Поддерживает непрерывные обновления с автоматическим откатом
Поддерживает непрерывные обновления, но не автоматический откат
Ведение журналов и мониторинг доступны и встроенные
Требуется сторонние приложения, такое как ELK для ведения журнала и мониторинга
Можно разделить хранилище контейнерам в одном поде
Может разделить хранилище любым контейнерам в кластере

Заключение

Я надеюсь, что теперь у вас есть общее представление о том, что такое Kubernetes и как он помогает в DevOps.

 

 

 

 

 

Поделитесь статьей:

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