Учебники

9) Учебник по Kubernetes

Прежде чем мы изучим Kubernetes, давайте изучим:

Зачем вам контейнеры?

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

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

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

В этом уроке для начинающих Kubernetes вы узнаете:

Какую задачу выполняет Кубернетес?

Kubernetes — это ядро ​​Linux, которое используется для распределенных систем. Это помогает вам абстрагироваться от базового оборудования узлов (серверов) и предлагает согласованный интерфейс для приложений, которые используют общий пул ресурсов.

Зачем использовать Kubernetes?

Вот преимущества / преимущества использования Kubernetes.

  • Kubernetes может работать на локальном уровне, OpenStack, общедоступных облаках Google, Azure, AWS и т. Д.
  • Помогает вам избежать проблем с блокировкой поставщика, поскольку он может использовать любые API или сервисы, специфичные для поставщика, за исключением случаев, когда Kubernetes предоставляет абстракцию, например, балансировщик нагрузки и хранилище.
  • Контейнерирование с использованием kubernetes позволяет программному обеспечению пакета выполнять эти задачи. Это позволит приложения, которые должны быть выпущены и обновлены без каких-либо простоев.
  • Kubernetes позволяет вам обеспечить выполнение этих контейнерных приложений в любом месте и в любое время, а также помогает находить ресурсы и инструменты, с которыми вы хотите работать.

Особенности Кубернетеса

Вот основные черты Kubernetes:

  • Автоматическое планирование
  • Возможности самовосстановления
  • Автоматическое развертывание и откат
  • Горизонтальное масштабирование и балансировка нагрузки
  • Обеспечивает согласованность среды для разработки, тестирования и производства
  • Инфраструктура, слабо связанная с каждым компонентом, может действовать как отдельный блок
  • Обеспечивает более высокую плотность использования ресурсов
  • Предлагает готовые к работе функции
  • Управление, ориентированное на приложения
  • Автоматически масштабируемая инфраструктура
  • Вы можете создать предсказуемую инфраструктуру

Основы Kubernetes

Вот некоторые важные основы Kubernetes:

  • кластер:

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

  • Мастер:

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

  • Узел:

    Это один хост, который может работать на физической или виртуальной машине. Узел должен запускать как kube-proxy, minikube, так и kubelet, которые рассматриваются как часть кластера.

  • Пространство имен:

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

Kubernetes Architecture

Архитектурная схема Кубернетеса

Мастер Узел

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

Главный узел имеет различные компоненты, такие как API-сервер, диспетчер контроллеров, планировщик и ETCD. Пусть увидят их всех.

Сервер API : Сервер API выступает в качестве точки входа для всех команд REST, используемых для управления кластером.

планировщик

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

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

Etcd

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

Рабочие / подчиненные узлы

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

  • Kubelet: получает конфигурацию модуля Pod с сервера API и обеспечивает работоспособность описанных контейнеров.
  • Контейнер Docker: Контейнер Docker запускается на каждом из рабочих узлов, на котором запускаются настроенные модули
  • Kube-proxy: Kube-proxy действует как балансировщик нагрузки и сетевой прокси для обслуживания на одном рабочем узле.
  • Модули. Модули — это комбинация одного или нескольких контейнеров, которые логически работают вместе на узлах.

Другие ключевые термины

Контроллеры репликации

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

Наборы репликации

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

развертывания

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

Наборы с состоянием

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

Наборы Демонов

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

Кубернетес против Докер Рой

параметры Докер Рой Kubernetes
пересчет Нет автомасштабирования Автоматическое масштабирование
Балансировка нагрузки Есть ли автоматическая балансировка нагрузки Вручную настройте параметры балансировки нагрузки
Совместное использование тома хранилища Делит тома хранения с любым другим контейнером Распределяет тома хранения между несколькими контейнерами внутри одного модуля
Использование средства регистрации и мониторинга Использование 3 — й инструмент партии , как ELK Предоставить встроенный инструмент для регистрации и мониторинга.
Установка Легко и быстро Сложный и трудоемкий
графический интерфейс пользователя GUI недоступен GUI доступен
Масштабируемость Масштабирование происходит быстрее, чем у K8S, но сила кластера не такая высокая Масштабирование медленное по сравнению с Swarm, но гарантирует более сильное состояние кластера. Балансировка нагрузки требует ручной настройки сервиса
Балансировка нагрузки Обеспечивает встроенную технику балансировки нагрузки Планирование процессов для поддержки услуг при обновлении
Журналы и мониторинг объемов данных обновлений и откатов Прогрессивные обновления и мониторинг работоспособности сервиса. Доступно только для контейнеров в тех же средствах регистрации и мониторинга Pod Inbuilt.

Недостатки Кубернетеса

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

Резюме:

  • Контейнер помогает организации выполнять обслуживание и обновление без прерывания обслуживания
  • Kubernetes является примером системы управления контейнером, разработанной на платформе Google.
  • Самым большим преимуществом использования Kubernetes является то, что он может запускать локальный OpenStack, публичные облака Google, Azure, AWS и т. Д.
  • Kubernetes предлагает возможности автоматического планирования и самовосстановления.
  • Кластер, мастер, узел и пространство имен являются важными базовыми для kubernetes.
  • Главный узел и рабочий узел являются важными компонентами архитектуры Kubernetes.
  • Контроллеры репликации, наборы репликации, развертывания, наборы состояний, наборы демонов — другие важные термины, используемые в Kubernetes.
  • Docker Swarm не позволяет автоматически масштабировать, в то время как Kubernetes позволяет автоматически масштабировать.
  • Самый большой недостаток Kubenetes — это то, что эта панель не очень полезна и эффективна