На предыдущую страницу
#DevOps #Managed IT #Software

Kubernetes

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

Kubernetes первоначально был разработан инженерами Google. Компания одной из первых начала работу с контейнерами и публично заявляла, что всё в Google работает в контейнерах. Google генерирует более 2 миллиардов развертываний в неделю – все они работают на внутренней платформе Borg. Borg был предшественником Kubernetes, и уроки, извлеченные из его разработки на протяжении многих лет, значительно повлияли на технологию Kubernetes.

Managed DevOps

Возможности Kubernetes

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

С Kubernetes можно:

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

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

  • реестр – через проекты Atomic Registry или Docker Registry;
  • сети – через OpenvSwitch and intelligent edge routing;
  • телеметрия – через heapster, kibana, hawkular и elastic;
  • безопасность – через LDAP, SELinux, RBAC и OAUTH;
  • автоматизация – с добавлением Ansible playbooks для управления жизненным циклом установки и кластера.

Некоторые наиболее распространенные термины, которые помогут понять Kubernetes:

  • Master – машина, управляющая узлами (нодами) Kubernetes.
  • Узел (нода) – машины, выполняющие назначенные задачи. В Kubernetes их контролирует мастер.
  • Pod – группа из одного или нескольких контейнеров, развернутых на одном узле. Все контейнеры в поде совместно используют IP-адрес, IPC, имя хоста и другие ресурсы. Поды абстрагируют сеть и хранилище от базового контейнера. Это позволяет более легко перемещать контейнеры внутри кластера.
  • Replication controller – определяет, сколько идентичных копий пода должно быть запущено внутри кластера.
  • Service – отделяет рабочие определения от подов. Прокси-серверы службы Kubernetes автоматически получают запросы на обслуживание нужного пода независимо от того, куда он перемещается в кластере.
  • Kubelet – эта служба работает на нодах и считывает манифесты контейнеров, а также обеспечивает их запуск и выполнение.
  • Kubectl – средство настройки командной строки для Kubernetes.
Оцените данную статью
Консультация по услугам