Начните работу с Kubernetes — будь вы ИТ-специалистом или новичком

Опубликовано: 16 Апреля, 2023
Начните работу с Kubernetes — будь вы ИТ-специалистом или новичком

Kubernetes — это платформа оркестрации контейнеров с открытым исходным кодом, созданная для автоматизации масштабирования, развертывания и управления контейнерными приложениями. Инженеры Google Джо Беда, Брендан Бернс и Крейг Маклаки разработали эту платформу до того, как в середине 2014 года она стала общедоступной. Теперь он поддерживается Cloud Native Computing Foundation (CNCF) при поддержке крупных технологических гигантов, таких как Google, Microsoft, AWS, Intel, Red Hat, IBM и Cisco. Многие облачные сервисы предлагают инфраструктуру Kubernetes как услугу (PaaS или IaaS). В его статье мы увидим, как любой пользователь, будь то опытный ИТ-специалист или новичок, может начать работу с Kubernetes.

Как работает Кубернет

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

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

Kubernetes-архитектура

Чтобы начать работу с контейнером Kubernetes, вам сначала нужно понять основные термины, касающиеся компонентов Kubernetes и их ассоциаций.

Изображение 14370
Викимедиа

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

Kubernetes Master: это комбинация трех процессов, которые выполняются на одном узле в пользовательском кластере, который создается как главный узел. Этими процессами являются Kube-APIserver (который проверяет и настраивает данные для объектов API), Kube-scheduler (демон, в который встроены основные циклы управления, поставляемые с Kubernetes) и Kube-controller-manager (богатый политиками и поддерживающий топологию)., функция, зависящая от рабочей нагрузки).

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

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

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

Тома Kubernetes: это то же самое, что том контейнера в Docker, но том Kubernetes применяется ко всему поду и монтируется ко всем контейнерам в поде. Kubernetes гарантирует, что данные будут сохранены при перезапуске контейнера. Том удаляется только при уничтожении модуля. Кроме того, с модулем могут быть связаны различные тома (могут быть разных типов).

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

Узлы: они работают как рабочая машина в кластерной среде Kubernetes. Рабочая машина может быть физической или, в большинстве случаев, виртуальной. Узел включает в себя все необходимые службы для размещения модуля. Имеет два компонента Kubelet и Kube-proxy. Kubelet — это ведущий сервис на узле, регулярно принимающий новые или измененные спецификации модулей и гарантирующий, что модули и их контейнеры работают в желаемом состоянии. Kube-proxy — это прокси-сервис, который запускается на каждом рабочем узле для работы с подсетями отдельных хостов и предоставления услуг внешним хостам. Он выполняет переадресацию запросов в правильные контейнеры/модули в различных изолированных сетях в кластере.

Как настроить Kubernetes и использовать его

Существует несколько способов настройки и начала работы с Kubernetes. Вот некоторые из этих вариантов:

Минкуб

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

Катакода

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

Гугл Кубернетес Движок

Google Kubernetes Engine (GKE) позволяет пользователю быстро приступить к работе с Kubernetes. Он предоставляет возможность управлять и использовать кластеры Kubernetes на Google Cloud Platform (GCP) без необходимости какой-либо установки. Пользователь может создать учетную запись уровня бесплатного пользования и за короткое время запустить многоузловой кластер. Подробности о настройке GKE доступны здесь. При этом пользователи также могут воспользоваться преимуществами расширенных функций управления кластером, предоставляемых GCP, таких как автоматическая балансировка нагрузки, масштабирование и обновления, а также ведение журнала и мониторинг.

Служба Microsoft Azure Kubernetes

Служба Azure Kubernetes (AKS) предлагает безсерверный Kubernetes, интегрированный процесс непрерывной интеграции и доставки (CI/CD) с безопасностью и управлением на уровне предприятия. Пользователю нужно только создать учетную запись уровня бесплатного пользования и начать работу с кластером Kubernetes, наслаждаясь встроенной интеграцией с различными службами Microsoft, такими как инструменты Visual Studio Code Kubernetes, Azure DevOps и Azure Monitor. Более подробная информация доступна здесь.

Сервис Amazon Elastic Kubernetes

Amazon Elastic Kubernetes Service (EKS) — это управляемый сервис, который позволяет пользователю легко запускать Kubernetes на AWS, не вставая и не поддерживая какую-либо плоскость управления Kubernetes. Пользователь может создать учетную запись уровня бесплатного пользования в AWS, чтобы создать кластер Kubernetes и работать с ним. Amazon EKS поддерживает как контейнеры Windows, так и контейнеры Linux. Дополнительные сведения и примеры использования доступны здесь.

Панель управления Kubernetes

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

Начало работы с Kubernetes: почему вы должны его использовать

По мере роста приложений и развертывания большего количества контейнеров на нескольких серверах управление ими становится все более сложным и сложным. Чтобы упростить эту задачу, можно использовать Kubernetes для управления приложениями в архитектуре микросервисов (метод разработки программного обеспечения). Платформа Kubernetes предоставляет API с открытым исходным кодом, который регулирует, как и где будут запускаться эти контейнеры. Эта платформа также обеспечивает возможность организации кластера виртуальных машин. Он может планировать запуск контейнеров приложений на этих виртуальных машинах в зависимости от доступных вычислительных ресурсов. Kubernetes может помочь в управлении обнаружением служб, отслеживании распределения ресурсов, включении балансировки нагрузки, проверке работоспособности отдельных ресурсов, масштабировании на основе использования вычислительных ресурсов и обеспечении самовосстановления приложений путем автоматического перезапуска контейнеров.