Что такое кластер Kubernetes?

Кластер Kubernetes (K8s) – это группа вычислительных узлов или рабочих машин, на которых запускаются контейнерные приложения. Контейнеризация – это процесс развертывания и поддержки времени выполнения программного обеспечения, который объединяет код приложения со всеми файлами и библиотеками, необходимыми для запуска в любой инфраструктуре. Kubernetes – это программное обеспечение для оркестрации контейнеров с открытым исходным кодом, с помощью которого можно управлять контейнерами, а также координировать и планировать их использование в любом масштабе. Kubernetes помещает контейнеры в поды и запускает их на узлах. Кластер Kubernetes содержит как минимум главный узел, на котором запущен под контейнера, и плоскость управления, контролирующую кластер. Развертывая Kubernetes, вы, по сути, запускаете кластер Kubernetes.

Каковы основы Kubernetes?

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

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

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

Далее давайте рассмотрим некоторые основные концепции Kubernetes.

Под

Под – это стандартное развертываемое устройство в Kubernetes. Поды состоят из одного или нескольких контейнеров, и в поде контейнеры используют одни и те же системные ресурсы, такие как хранилище и сеть. Каждый под получает уникальный IP-адрес. 

Контейнеры в поде не изолированы. Представьте себе модуль, похожий на виртуальную машину (VM) с контейнерами, похожими на приложения, запущенные на VM. Поды можно организовать в группе и по отдельности, присвоив им метки атрибутов, например метку dev или prod в зависимости от типа среды. 

Узел

Узел – это машина, на которой работают поды. Это может быть физический или виртуальный сервер, например инстанс Amazon EC2. Узел состоит из таких компонентов:

  • Kubelet для управления узлами и контейнерами;
  • Kube-proxy для сетевого прокси;
  • времени выполнения контейнера.

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

Набор и развертывание реплик

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

Развертывание – это объект управления Kubernetes, предназначенный для развертывания приложения, а также обновления или отката приложения без перевода его в автономный режим.

Обслуживание и прием данных

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

Что такое кластерные компоненты Kubernetes?

Кластер Kubernetes – это группа из одного или нескольких узлов с запущенными подами. В кластере плоскость управления Kubernetes управляет узлами и модулями.

К компонентам плоскости управления относятся:

  • сервер Kubernetes API (kube-apiserver), который управляет связью внутри кластера и с ним;
  • хранилище (etcd) для записи постоянного состояния кластера;
    планировщик (kube-scheduler) для управления узлами и подами ресурсов Kubernetes. 

Другие компоненты включают диспетчер контроллеров для управления узлами и заданиями (kube-controller-manager) и диспетчер облачных контроллеров для интеграции с публичной облачной инфраструктурой конкретных поставщиков (cloud-controller-manager).

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

Как разработчики работают с кластером Kubernetes?

Сначала разработчикам необходимо загрузить и установить Kubernetes на главном узле и его рабочих узлах. Затем они могут развернуть кластер на физических или виртуальных машинах, локально, в центре обработки данных или в облаке.

Установка

Чтобы начать работу с виртуальными машинами Linux, сначала установите на выбранном вами главном узле или виртуальной машине все необходимое:

  • Docker или любое другое программное обеспечение для контейнеризации;
  • репозиторий кода Kubernetes и его ключ;
  • пакет kubeadm для начальной загрузки кластера;
  • пакет kubelet для координации узлов;
  • пакет kubectl для командной строки кластера.

Выполните эти шаги на всех других назначенных рабочих узлах.

Инициализация кластера

Чтобы инициализировать кластер, выполните команду kubeadm init на главном узле. Прежде чем кластер будет готов к работе, необходимо добавить файл конфигурации kube и развернуть сеть подов (обычно с помощью файла YAML). Команда kubeadm init выводит команду join, которую можно скопировать и вставить в командные строки рабочих узлов других виртуальных машин. Так вы присоедините к кластеру каждый рабочий узел. 

Работа с Kubernetes

С помощью панели управления пользовательским интерфейсом Kubernetes можно создавать и развертывать приложения в кластере. Для панели управления пользовательским интерфейсом Kubernetes запустите команду kubectl proxy на главной машине. После этого пользовательский интерфейс будет доступен по адресу http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/.

Что такое управление кластерами Kubernetes?

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

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

Как AWS может удовлетворить ваши требования к кластерам Kubernetes?

AWS предоставляет облачные сервисы для настройки, запуска и управления кластерами Kubernetes. 

  • Эластичное облако вычислений Amazon (EC2) помогает выделять и запускать Kubernetes на выбранных типах инстансов.
  • Эластичный сервис Amazon Kubernetes (EKS) помогает запускать и масштабировать Kubernetes без необходимости выделять основные инстансы и управлять ими с помощью плоскости управления и хранилища. EKS интегрирован с сетевыми сервисами и сервисами безопасности AWS и поставляется с инструментами управления кластерами.

Начните работу с кластерами Kubernetes на AWS, создав бесплатный аккаунт уже сегодня.

AWS: дальнейшие шаги

Зарегистрировать бесплатный аккаунт

Получите мгновенный доступ к уровню бесплатного пользования AWS.

Регистрация 
Начать разработку в консоли

Начните разработку в Консоли управления AWS.

Вход