Учебное пособие по Kubernetes для начинающих: основы, возможности, Archiтекстура

Прежде чем мы начнем это руководство по Kubernetes, давайте изучим:

Что такое Kubernetes?

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

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

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

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

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

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

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

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

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

Вот основные функции Kubernetes:

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

Основы Kubernetes

В этом уроке по Kubernetes мы изучим некоторые важные основы Kubernetes:

  • Cluster

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

  • Эталонный

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

  • Узел

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

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

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

Kubernetes Archiтекстура

Ниже приведена подробная схема архитектуры Kubernetes:

Kubernetes ArchiДиаграмма тектуры
Kubernetes ArchiДиаграмма тектуры

Мастер Узел

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

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

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

Планировщик

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

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

И т. Д.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kubernetes против Docker Swarm

Вот важные различия между Kubernetes против Docker.

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

Преимущества Кубернета

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

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

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

Итого

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