Что такое Kubernetes?

По IBM Services

Координация и развертывание контейнерных приложений в любой среде

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

Контейнер — это программное обеспечение, полностью отделенное от базовой инфраструктуры. Контейнеры обеспечивают виртуализацию всего вплоть до уровня операционной системы. Это означает, что приложение будет работать одинаковым образом, где бы оно ни выполнялось.

Сегодня большинство контейнеров работают на платформе Kubernetes. Согласно описанию, данному самой организацией: «Kubernetes предлагает среду управления, ориентированную на контейнеры. Она обеспечивает координацию вычислительных возможностей, сетевых функций и инфраструктуры хранения для пользовательских задач... и переносимость между поставщиками инфраструктуры». ⁽¹⁾

Общие сведения о Kubernetes

Kubernetes является продолжением системы управления кластерами Borg, разработанной специалистами Google. В 2014 году компания представила версию Borg с открытым исходным кодом, назвав ее Kubernetes.⁽²⁾

В 2015 году была выпущена первая версия Kubernetes, обеспечивающая управление контейнерами для распределенных приложений. Одновременно с этим Google в сотрудничестве с Linux Foundation учредила организацию Cloud Native Computing Foundation, предложив Kubernetes в качестве ключевой технологии.⁽³⁾

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

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

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

Некоторые ключевые концепции:

  • Базовой единицей управления Kubernetes является «под» или группа контейнеров. Контейнеры в поде используют общую память, ресурсы и IP-адрес.
  • Кластер Kubernetes состоит из главного и рабочих узлов. (Узел — это хост или сервер, в котором запущен контейнер; это может быть виртуальная или физическая система).
  • Главный узел отвечает за управление приложениями в контейнере и обмен данными в пределах системы. В его состав входит планировщик, управляющий производительностью, емкостью и доступностью.
  • Рабочие узлы работают в подах под управлением главного узла.
  • С помощью файлов конфигурации можно указывать рабочие параметры, такие как число одновременно выполняемых подов. Kubernetes позволяет управлять ресурсами всего центра обработки данных, как если бы они были одной системой.  

Kubernetes и Docker: Это не вопрос «либо/либо»

В чем заключается важность Kubernetes

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

Организациям требуется возможность управления всеми движущимися частями среды контейнеров — желательно из одной точки. Многие выбирают Kubernetes в качестве решения.

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

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

В своем блоге IBM Мэтт Джонсен выделяет некоторые преимущества:

  • Экономия затрат: кластеры Kubernetes известны низкими расходами на обслуживание. У коллективов нет необходимости создавать собственные сценарии автоматизации контейнеров. Они могут использовать общую инфраструктуру. Расходы на аппаратное обеспечение можно сократить за счет более эффективного использования существующего аппаратного обеспечения.
  • Ускорение выхода на рынок: Kubernetes идеально подходит для DevOps. Эффективное управление контейнерами означает, что пока работает программное обеспечение развертывание практически всегда будет беспроблемным.
  • Гибкость ИТ-инфраструктуры: в современных предприятиях для запуска программного обеспечения может использоваться любое число частных и общих инфраструктур. Решение для управления контейнерами позволяет перемещать приложения без снижения производительности или внесения серьезных изменений. Программное обеспечение можно запускать там, где это необходимо для бизнеса.

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

«Если вы уже используете Docker и контейнеры с приложениями, то переход на Kubernetes поможет избежать дополнительной операционной нагрузки, которая неизбежно возникает при масштабировании практически любых приложений», — говорит Сай Веннам, консультант разработчиков IBM.

Kubernetes как услуга

Организации могут внедрить внутреннюю систему Kubernetes для управления развертыванием контейнеров. Однако это не единственный вариант — поставщик услуг может предлагать платформу или инфраструктуру на основе Kubernetes в виде услуги.

Клиенты получают те же возможности, но с меньшими накладными расходами. Джейсон Макги, вице-президент и IBM Fellow, IBM Cloud, делится своим мнением:

«В механизмах создания работающего кластера контейнеров, включая установку, подключение и настройку набора ресурсов, довольно не просто разобраться. Это трудоемкий процесс, требующий обширных знаний. Что делать, если вам потребуется добавить или удалить ресурсы из среды контейнеров? Как вы восстанавливаете работу после сбоев? Контейнеры и Kubernetes меняются невероятно быстро.

«Для того чтобы оставаться в курсе событий, необходимо прикладывать массу усилий. Одно из преимуществ управляемой услуги заключается в том, что вся эта работа выполняется за вас и и можете сконцентрироваться на своих приложениях». ⁽⁴⁾

Поставщик управляемых услуг, такой как IBM, отвечает за обработку вычислительных и сетевых ресурсов, а также ресурсов хранения на уровне каждого кластера узлов. Услуга IBM предлагает интеллектуальное планирование, упрощенное управление кластерами, обеспечение защиты контейнеров, политики изоляции и возможность модернизирования инфраструктуры.

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

«Теперь разработчики могут выбрать конфигурации физических серверов в соответствии с конкретными требованиями, такими как изоляция, высокая вычислительная мощность или большая емкость локальных дисков. При этом сохраняются все преимущества контейнеров, включая простое перемещение данных между системами и возможность совместной работы с разными компонентами приложений», — говорит Макги.

The Weather Company масштабирует веб-службы, заботясь о безопасности людей

 

Ресурсы Kubernetes

Что такое контейнеры и зачем они нужны?

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

Внедрение Kubernetes и важность управления производительностью приложений

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

Kubernetes и Docker: а почему бы то и другое одновременно?

Узнайте о различиях между Kubernetes и Docker

IBM дает возможность развертывания сложных нагрузок в контейнерах Kubernetes на физических серверах

Оцените преимущества управляемой услуги по развертыванию контейнеров Kubernetes в облачной инфраструктуре с физическими серверами

Учитесь у Watson: масштабирование задач искусственного интеллекта с помощью контейнеров

Узнайте, почему задачи искусственного интеллекта любых типов лучше выполнять в облаке

Мониторинг услуги IBM Cloud с помощью Outlyer

Узнайте о преимуществах использования самостоятельного мониторинга в составе услуги IBM Cloud Kubernetes Service

Рекомендуемая услуга

IBM Cloud Kubernetes Service

 

1. https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

2. https://blog.risingstack.com/the-history-of-kubernetes/

3. https://en.wikipedia.org/wiki/Kubernetes

4. https://softwareengineeringdaily.com/2017/11/29/how-ibm-runs-its-cloud-with-jason-mcgee/