{"id":14279,"url":"\/distributions\/14279\/click?bit=1&hash=4408d97a995353c62a7353088166cda4ded361bf29df096e086ea0bbb9c1b2fc","title":"\u0427\u0442\u043e \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435: \u0432\u044b\u0435\u0445\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0438\u043b\u0438 \u0437\u0430\u0435\u0445\u0430\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435?","buttonText":"","imageUuid":""}

Managed Kubernetes от EdgeЦентр Cloud

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

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

У EdgeЦентр Cloud есть Managed Kubernetes — сервис, который позволяет использовать K8s в нашем облаке и управлять контейнерами без лишних усилий. Недавно мы завершили его бета-тестирование и запустили в коммерческую эксплуатацию.

В этом материале расскажем подробно о Kubernetes и нашем сервисе. Из статьи вы узнаете:

Что такое контейнеры и зачем ими управлять

Контейнеризация — это способ изоляции приложений друг от друга.

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

Это похоже на виртуальные машины в облаке. Но есть несколько существенных отличий.

Чем контейнеры отличаются от виртуальных машин:

  • Виртуальная машина выступает как аналог полноценного сервера со своими аппаратными ресурсами, виртуальным процессором и другими компонентами. А контейнер всего лишь изолирует приложение и всё, что с ним связано.
  • У виртуальной машины собственная ОС. А контейнер использует операционную систему и общее ядро хоста.
  • Контейнеры легче. На одном и том же сервере их можно запустить в несколько раз больше, чем ВМ. Плюс сами контейнеры могут быть развёрнуты в облаке, на виртуальных машинах.
Чем контейнеры отличаются от виртуальных машин

Основные плюсы контейнеров:

  • Идеально подходят для микросервисной архитектуры. Это подход, когда приложение разбивается на несколько относительно независимых компонентов — микросервисов. Это позволяет ускорить разработку и повысить отказоустойчивость сервиса в целом. Чтобы внести изменение в один из компонентов, не нужно останавливать всё приложение целиком.
  • Упрощают перенос приложения на другой сервер. Вы сможете развернуть уже созданный контейнер на любой машине, где установлен Docker, буквально за пару кликов. А всю инфраструктуру ваших сервисов можно развернуть на нескольких хостах.
  • Безопасны для основной операционной системы. Так как приложение в контейнере изолировано, его баги и сбои никак не отразятся на других программах или работе сервера в целом.

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

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

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

Что такое Kubernetes

Kubernetes автоматизирует процесс управления контейнерами. С его помощью можно:

  • легко масштабировать инфраструктуру, создавать новые контейнеры и удалять ненужные ресурсы;
  • перезапускать и обновлять контейнеры;
  • следить за их состоянием;
  • распределять ресурсы между контейнерами и балансировать трафик, etc.

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

Основные преимущества Kubernetes

1. Автоматизация процессов. Мы уже сказали, что основная задача K8s — автоматизировать управление контейнерами. Сервис упрощает работу, а значит, снимает часть нагрузки с IT-команды.

2. Использование мультиоблака. Kubernetes даёт возможность легко переносить контейнеры с одного хоста на другой и даже использовать несколько облаков в одной инфраструктуре.

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

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

Кроме этого, раз Kubernetes снижает нагрузку на IT-команду, сотрудники вместо администрирования смогут сосредоточиться на более важных задачах и быстрее их решать. Вы упростите процессы тестирования, будете разрабатывать и выводить новые продукты на рынок быстрее и получать больше прибыли.

4. Мгновенное масштабирование. Kubernetes может сокращать или наращивать необходимые вам вычислительные мощности в автоматическом режиме.

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

6. Безболезненное канареечное тестирование. Часто перед выпуском какого-то обновления нужно сначала проверить его на клиентах. Для этого можно запустить обновлённый сервис в тестовом режиме и пустить на него небольшую часть трафика. И если всё работает нормально, постепенно перевести на него основной трафик.

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

Если в процессе тестов обнаружится, что что-то пошло не так, не нужно будет ничего откатывать назад. Вы просто отключаете дублирующий контейнер и возвращаете весь трафик на основной.

7. Безопасное хранение данных. Kubernetes может хранить и управлять конфиденциальной информацией, такой как пароли, OAuth-токены и ключи SSH.

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

Как устроен Kubernetes

Чтобы понять, как всё устроено, давайте разберём основные понятия Kubernetes.

Под — основная единица K8s. Набор из 1 или нескольких контейнеров для совместного развёртывания и связанных с этими контейнерами дополнительных ресурсов.

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

Схематичное устройство пода

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

Узел (или нода) — виртуальная машина или физический сервер, на котором запускаются контейнеры.

Несколько узлов, связанных между собой, образуют кластер.

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

Kubernetes реализует концепцию Master-Slave.

Все узлы делятся на 2 типа:

  • master-узел;
  • worker-узел (рабочий узел).

Master-узел — это главный элемент, который управляет рабочими узлами.

Его основные задачи:

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

Master-узел можно сравнить с начальником, который отдаёт распоряжения подчинённым и следит за их работой.

А worker-узлы — это и есть подчинённые. На них размещаются и запускаются поды.

Ещё на рабочих узлах есть механизмы, которые проверяют состояние подов, распределяют траффик между ними и выполняют различные команды от master-узла.

Мы перечислили основные компоненты Kubernetes. Конечно, это далеко не всё. Но для общего понимания, как устроен K8s, этого будет достаточно.

Что такое Managed Kubernetes

Managed Kubernetes — это новый сервис EdgeЦентр Cloud, который позволит вам использовать K8s в инфраструктуре нашего облака и упростит работу с кластерами.

Сервис даёт возможность создавать кластеры, управлять узлами через единую панель EdgeЦентр и автоматизировать процессы ещё больше.

Вы получаете все возможности Kubernetes, гибкую инфраструктуру. А рутинные задачи по развёртыванию кластеров и управлению master-узлами мы берём на себя.

Особенности сервиса:

  • У вас есть доступ только к рабочим узлам. А master-узлы контролируют наши администраторы. Вы не тратите время на рутину и можете сосредоточиться на разработке.
  • Создать и настроить кластер под ваши задачи вы можете в панели управления. Вы сами определяете количество рабочих узлов, настраиваете автомасштабирование и автолечение.
  • В качестве рабочих узлов сейчас используются наши виртуальные машины. Но в будущем мы планируем внедрить возможность добавлять в кластеры и Bare Metal серверы.
  • Мы используем последнюю версию Kubernetes. Если выйдет новая, вы сможете обновиться до неё без потери данных всего за пару кликов в панели управления.

Кластер пока можно развернуть в пределах 1 дата-центра, но в будущем мы добавим возможность подключать узлы из разных ЦОДов.

В Managed Kubernetes есть возможность автомасштабирования — система будет автоматически увеличивать и уменьшать количество узлов в пуле. Если ресурсов недостаточно, сервис добавит дополнительные виртуальные машины. А если какие-то узлы не будут использоваться дольше 20 минут, они будут удалены.

Вы можете сами настроить минимальное и максимальное количество узлов в пуле. А при желании автомасштабирование можно отключить.

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

Управление сервисом возможно через панель или API. Вы можете:

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

Как подключить сервис

Если вы уже подключены к EdgeЦентр Cloud, Managed Kubernetes уже доступен в вашей панели управления. Ничего дополнительно подключать не нужно.

А если не подключены, напишите наши менеджерам. Они подключат вас к панели управления и активируют сервис.

Мы постарались сделать сервис максимально выгодным для клиентов. Вы платите только за рабочие узлы и их ресурсы (плавающие IP, балансировщики нагрузки, диски). Цены такие же, как и на обычные ресурсы в нашем облаке.

Мы не тарифицируем:

  • мастер-ноды и их ресурсы;
  • исходящий трафик.

Работайте с кластерами Kubernetes без лишних усилий и расходов с помощью нашего сервиса.

0
Комментарии
-3 комментариев
Раскрывать всегда