Kubernetes – это платформа с открытым исходным кодом, используемая для управления контейнерами. Впервые разработана компанией Google для внутренних потребностей в управлении контейнеризованными приложениями в различных средах.
Данная платформа контролирует контейнерные нагрузки, службы, а также автоматизирует операции с ними. Она дает возможность упростить ручные процессы, связанные с развертыванием и масштабированием упакованных в контейнеры приложений.
Kubernetes разработана для управления кластером контейнеров Linux. Это ПО управляет кластером контейнеров и запускает контейнеры Docker на многочисленных хостах, обеспечивая совместное размещение и синхронизацию большого количества контейнеров. Основоположником платформы является Google, в данный момент управление осуществляет Cloud Native Computing Foundation.
Следует учитывать, что компаниям и организациям, работа которых предполагает постоянные выпуски программного обеспечения, просто необходим DevOps. Методология DevOps — это коммуникация Dev (development) и Ops (operations) команд на всех этапах разработки, результат которой должен гарантировать выпуск качественного продукта.
Разработка контейнеров способствовала тому, что разработчики сфокусировали свое внимание на создании качественного продукта, что дало возможность сократить время на работу с инфраструктурой. Kubernetes помогает разработчикам в написании приложений, работающих в условиях кластера, поскольку платформа используется для оркестрации контейнеризованных приложений.
Kubernetes осуществляет поддержку контейнеризации, включая Docker, тем самым связывает совокупность контейнеров (контейнер – пакет программного обеспечения — это способ запустить приложения).
Docker — программное обеспечение доставки, управления и запуска приложений в средах с поддержкой контейнеризации, что позволяет рассмотреть его как инструмент для запуска контейнеров. В отличие от него, Kubernetes — платформа для запуска контейнеров и управления ими из разного количества контейнерных сред.
Docker — контейнерная среда, поддерживаемая Kubernetes. Kubernetes дает возможность построить “ Cluster “, а Docker работает на отдельном узле.
Используя платформу Kubernetes, мы соприкасаемся с кластером, так как это конечная цель установки Kubernetes.
Main расположен в каждом кластере, регулируя его управление. Это процесс, отвечающий за координацию событий в кластере: масштабирование, мониторинг, и тому подобное.
Кластер Kubernetes насчитывает два типа ресурсов:
- Плоскость управления координирует кластер;
- Плоскость управления регулирует все действия в кластере.
Узлы — элементы, из которых состоит кластер, запускающие приложения.
Узел — это отдельная облачная виртуальная машина или физическое оборудование (компьютер). Узлы содержат Kubelet — процесс, который коммуницирует с процессом Main, используя точки доступа Kubernetes.
В каждом узле в кластере присутствуют сервисы для запуска приложений в контейнерах – Docker и элементы для централизованного управления узлом. Kubelet — процесс, управляющий узлом и обменом данных с Main. Kubelet присутствует в каждом узле, обрабатывает спецификацию PodSpec, которая устанавливает способ обслуживания контейнеров в модулях.
Модуль (содержится в узлах) — представляет собой абстракцию контейнера, или комплекс контейнеров. Это единица для запуска и управления приложениями. Модуль в кластере содержит IP-адрес, доступный внутри системы.
Так как модули существуют короткий промежуток времени, у них динамические IP-адреса, что дает возможность перераспределить, если модуль обновлен или создан заново. Это одна из причин, которая является помехой при подключении к модулю по IP-адресу. В следствии возникает необходимость прибегнуть к помощи сервисов, обеспечивающих статический IP-адрес модуля.
Популярные сервисы, предоставляющие статические IP-адреса модуля
Контроллер (controller) — это процесс, который управляет состоянием кластера. Один из типов контроллеров — Replication Controller отвечающий за работу запуска необходимого количества копий модулей, обеспечивая автоматическое масштабирование Kubernetes. При наличии большого количества модулей, контроллер отсортирует их, а при недостаточном количестве — создаст.
Kubectl — один из инструментов командной строки Kubernetes для реализации команд в кластере. Дает возможность использовать перечень команд и функций в Kubernetes, развертывания приложений, управление ресурсов кластера.
Kubernetes предоставляет перечень популярных инструментов для интеграции процессов разработки и развёртывания программного обеспечения:
MiniKube — это адаптированная версия реализации Kubernetes, создающая виртуальную машину на локальном оборудовании (компьютере).
Helm — официальный менеджер пакетов Kubernetes.
Skaffold — утилита от Google для локальной разработки в Kubernetes (довольно таки востребованная в сфере тестирования web-приложений).
Kubernetes — это возможность писать приложения, работающие в кластере, и эффективно ими управлять. Также способность автоматизации их развёртывания, масштабирования в условиях кластера. Использование преимуществ локальных, облачных инфраструктур.
0 Comments