Управление затратами для Kubernetes

Управление затратами Azure
Служба Azure Kubernetes (AKS)
управляемые диски Azure.
Хранилище Azure
Виртуальные машины Azure

В этом руководстве объясняется, как работают цены и управление затратами в Служба Azure Kubernetes (AKS) по сравнению с Amazon Elastic Kubernetes Service (Amazon EKS). В этой статье описывается, как оптимизировать затраты и реализовать решения по управлению затратами для кластера AKS.

Примечание

Эта статья является частью серии статей , которые помогут специалистам, знакомым с Amazon EKS , понять AKS.

Основы затрат Amazon EKS

В Amazon EKS вы платите фиксированную цену в час за каждый кластер Amazon EKS. Вы также платите за сеть, операционные средства и хранилище, которые использует кластер.

Рабочие узлы Amazon EKS являются стандартными экземплярами Amazon EC2, поэтому на них потребляются регулярные цены Amazon EC2. Вы также платите за другие ресурсы Amazon Web Services (AWS), подготовленные для запуска рабочих узлов Kubernetes.

Использование групп управляемых узлов Amazon EKS не взимается. Вы платите только за ресурсы AWS, которые вы подготавливаете, включая экземпляры Amazon EC2, тома Amazon EBS, часы работы кластера Amazon EKS и любую другую инфраструктуру AWS.

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

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

  • Точечные экземпляры Amazon EC2 можно прервать с двухминутным уведомлением о прерывании, когда EC2 требуется вернуть емкость.

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

  • Цены на точечные экземпляры AWS различаются. AWS устанавливает цену в зависимости от долгосрочных тенденций спроса и предложения для емкости точечных экземпляров, и вы платите цену, действовав на период времени, когда экземпляр работает.

Основы затрат AKS

Архитектура Kubernetes основана на двух уровнях: уровне управления и одном или нескольких узлах или пулах узлов. Модель ценообразования AKS основана на двух уровнях архитектуры Kubernetes.

  • Уровень управления предоставляет основные службы Kubernetes, такие как сервер API и , а etcdтакже оркестрацию рабочих нагрузок приложений. Платформа Azure управляет уровнем управления AKS, а для уровня "Бесплатный" AKS уровень управления не имеет затрат.

  • Узлы, также называемые узлами агента или рабочими узлами, размещают рабочие нагрузки и приложения Kubernetes. В AKS клиенты полностью управляют узлами агента и оплачивают все затраты.

На следующей схеме показана связь между уровнем управления и узлами в архитектуре AKS Kubernetes.

Схема, показывающая уровень управления и узлы в архитектуре AKS.

Уровень управления

Azure автоматически подготавливает и настраивает уровень уровня управления при создании кластера AKS. Для уровня "Бесплатный AKS" уровень управления является бесплатным.

Для более высокого уровня управления соглашения об уровне обслуживания (SLA) можно создать кластер AKS на уровне "Стандартный". Соглашение об уровне обслуживания об уровне доступности по умолчанию входит в уровень "Стандартный" и включается для каждого кластера. Цена составляет 0,10 долл. США за кластер в час. Дополнительные сведения см. в разделе Сведения о ценах на AKS.

Кластеры уровня "Стандартный" имеют больше ресурсов уровня управления, например количество экземпляров сервера API, ограничения ресурсов Etcd, масштабируемость до 5000 узлов и поддержку существующего SLA времени доступности с финансовой поддержкой. AKS использует main реплики узлов в доменах обновления и сбоя в соответствии с требованиями к доступности.

Лучше всего использовать уровень "Стандартный" в рабочих нагрузках, чтобы обеспечить более высокий уровень доступности компонентов уровня управления. Кластеры уровня "Бесплатный" имеют меньше реплик и ограниченные ресурсы уровня управления и не рекомендуются для рабочих нагрузок.

Узлы

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

Узлы AKS используют несколько ресурсов инфраструктуры Azure, включая масштабируемые наборы виртуальных машин, виртуальные сети и управляемые диски. Например, большинство типов виртуальных машин Azure можно использовать непосредственно в AKS. Вы можете использовать резервирования Azure и план экономии Azure для вычислений, чтобы получить значительные скидки на эти ресурсы.

Цены на кластер AKS основаны на классе, количестве и размере виртуальных машин в пулах узлов. Стоимость виртуальной машины зависит от размера, типа ЦП, количества виртуальных ЦП, доступной памяти, семейства и типа хранилища, например высокопроизводительного ssd или hdd ценовой категории "Стандартный". Дополнительные сведения см. в статье Серия виртуальных машин. Спланируйте размер узла в соответствии с требованиями приложения, количеством узлов и требованиями к масштабируемости кластера.

Дополнительные сведения об узлах агента и пулах узлов см. в статьях Пулы узлов этой серии и Создание нескольких пулов узлов для кластера в Служба Azure Kubernetes (AKS) и управление ими.

Развертывание кластера AKS

Каждое развертывание AKS охватывает две группы ресурсов Azure.

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

  • Поставщик ресурсов AKS автоматически создает вторую группу ресурсов или группу ресурсов узла во время развертывания. Имя по умолчанию для этой группы ресурсов — MC_<resourcegroupname>_<clustername>_<location>, но можно указать другое имя. Дополнительные сведения см. в статье Указание собственного имени для группы ресурсов узла AKS.

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

Затраты на вычислительные ресурсы

Вы платите за виртуальные машины Azure в соответствии с их размером и использованием. Сведения о сравнении вычислений Azure с AWS см. в статье Службы вычислений в Azure и AWS.

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

При изучении цен на виртуальные машины Azure учитывайте следующие моменты.

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

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

  • Плата за управляемые диски, используемые в качестве дисков ОС, взимается отдельно, и их стоимость необходимо добавить к оценкам. Размер управляемого диска зависит от класса, например HDD (цен. категория "Стандартный"), SSD (цен. категория "Стандартный"), SSD (цен. категория "Стандартный"), SSD (цен. категория "Премиум") или SSD (цен. категория "Ультра") Операции ввода-вывода в секунду и пропускная способность в МБ/с зависят от размера и класса. Временные диски ОС бесплатны и включены в стоимость виртуальной машины.

  • Диски данных, в том числе созданные с помощью утверждений постоянных томов, являются необязательными и оплачиваются отдельно в зависимости от их класса, таких как ДИСКИ HDD ценовой категории "Стандартный", "Стандартный", SSD уровня "Премиум" и SSD категории "Ультра". К оценкам затрат необходимо явно добавить диски данных. Количество разрешенных дисков данных, дисков временного хранилища, операций ввода-вывода в секунду и пропускная способность в МБ/с зависит от размера и класса виртуальной машины.

  • Чем больше времени на работу узлов агента, тем выше общая стоимость кластера. Средам разработки обычно не требуется постоянно работать.

  • Сетевые интерфейсы (NIC) предоставляются бесплатно.

Затраты на хранение

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

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

  • Диски Azure создают ресурсы дисков данных Kubernetes. Диски могут использовать службу хранилища Azure ценовой категории "Премиум" на основе высокопроизводительных твердотельных накопителей или службу хранилища Azure ценовой категории "Стандартный" на основе обычных жестких дисков или стандартных твердотельных накопителей. Большинство рабочих нагрузок рабочей среды и разработки используют хранилище класса Premium. Диски Azure подключаются как ReadWriteOnce, что делает их доступными только для одного узла AKS. Для томов хранилища, к которым несколько модулей pod могут получить доступ одновременно, используйте Файлы Azure. Сведения о затратах см. в разделе цены на Управляемые диски.

  • Файлы Azure подключает общие папки SMB 3.0/3.1, поддерживаемые учетной записью хранения Azure, к модулям pod AKS. Вы можете совместно использовать данные между несколькими узлами и модулями pod. Файлы Azure может использовать хранилище уровня "Стандартный" на основе обычных жестких дисков или хранилище класса Premium на основе высокопроизводительных SSD. Файлы Azure использует учетную запись хранения Azure и начисляет плату в зависимости от следующих факторов:

    • Служба: большие двоичные объекты, файлы, очереди, таблицы или неуправляемые диски
    • Тип учетной записи хранения: GPv1, GPv2, BLOB-объект или BLOB-объект уровня "Премиум"
    • Устойчивость: локально избыточное хранилище (LRS), хранилище, избыточное между зонами (ZRS), геоизбыточное хранилище (GRS) или геоизбыточное хранилище с доступом на чтение (RA-GRS).
    • Уровень доступа: горячий, холодный или архивный
    • Операции и передача данных
    • Используемая емкость в ГБ
  • Azure NetApp Files доступно на нескольких уровнях SKU и требует минимальной подготовленной емкости в 4 ТиБ с шагом в 1 ТиБ. Azure NetApp Files расходы основаны на следующих факторах:

    • номер SKU
    • Устойчивость: LRS, ZRS или GRS
    • Подготовленный размер или емкость, а не используемая емкость
    • Операции и передача данных
    • Резервное копирование и восстановление

Затраты на сеть

Несколько сетевых служб Azure могут предоставлять доступ к приложениям, работающим в AKS:

  • Azure Load Balancer. По умолчанию Load Balancer использует номер SKU "Стандартный". Load Balancer расходы основаны на:

    • Правила. Количество настроенных правил балансировки нагрузки и исходящих подключений. Правила преобразования входящих сетевых адресов (NAT) не учитываются в общем количестве правил.
    • Обработанные данные. Объем данных, обработанных входящего и исходящего трафика, независимо от правил. Плата за Load Balancer (цен. категория без настроенных правил не взимается.
  • Шлюз приложений Azure. AKS часто использует Шлюз приложений через Шлюз приложений контроллера входящего трафика или с помощью интерфейса другого контроллера входящего трафика с помощью управляемых вручную Шлюз приложений. Шлюз приложений поддерживает маршрутизацию шлюза, завершение протокола TLS и функции Брандмауэр веб-приложений (WAF). Шлюз приложений расходы основаны на:

    • Фиксированная цена, установленная по часам или частичному часу.
    • Цена за единицу емкости, добавленная стоимость на основе потребления. Каждая единица емкости имеет не более одной вычислительной единицы, 2500 постоянных подключений и пропускную способность 2,22 Мбит/с.
  • С общедоступными IP-адресами связана стоимость, которая зависит от:

    • Зарезервированное и динамическое сопоставление.
    • Уровень "Базовый" и "Защищенный" и уровень "Стандартный", избыточный между зонами.

Затраты на горизонтальное масштабирование

Существует несколько вариантов масштабирования кластера AKS для добавления дополнительной емкости в пулы узлов:

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

  • Средство автомасштабирования кластера AKS наблюдает за объектами pod, которые не могут быть запланированы на узлах из-за ограничений ресурсов, и автоматически увеличивает количество узлов.

  • AKS поддерживает выполнение контейнеров в Экземпляры контейнеров Azure с помощью реализации виртуального kubelet. Виртуальный узел AKS подготавливает Экземпляры контейнеров pod, которые запускаются в секундах, позволяя AKS работать с достаточной емкостью для средней рабочей нагрузки. По мере того как в кластере AKS заканчивается емкость, вы можете масштабировать больше Экземпляры контейнеров pod без управления дополнительными серверами. Этот подход можно сочетать с автомасштабированием кластера и масштабированием вручную.

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

  • Выставление счетов по метрикам на основе использования для каждой группы контейнеров
  • Виртуальный ЦП коллекции и память
  • Использование одного контейнера или совместное использование нескольких контейнеров
  • Использование совместно запланированных контейнеров с общим жизненным циклом сети и узла
  • Длительность использования, вычисляемая при запуске или перезапуске извлечения образа, до остановки
  • Добавлена плата за группы контейнеров Windows

Затраты на обновление

Часть жизненного цикла кластера AKS включает периодическое обновление до последней версии Kubernetes. Важно применять последние выпуски системы безопасности и получать новейшие функции. Вы можете обновить кластеры AKS и пулы с одним узлом вручную или автоматически. Дополнительные сведения см. в статье Обновление кластера службы Azure Kubernetes (AKS).

По умолчанию AKS настраивает обновление для всплесков с использованием одного дополнительного узла. Значение 1 по умолчанию для max-surge параметра сводит к минимуму прерывание рабочей нагрузки, создавая дополнительный узел для замены узлов с более старыми версиями перед оцеплением или очисткой существующих приложений. Вы можете настроить max-surge значение для каждого пула узлов, чтобы обеспечить компромисс между скоростью обновления и прерыванием обновления. max-surge Увеличение значения завершает процесс обновления быстрее, но большое значение для max-surge может привести к сбоям во время процесса обновления и повлечь дополнительные затраты на дополнительные виртуальные машины.

Другие расходы

В зависимости от использования и требований кластеры AKS могут нести следующие дополнительные затраты:

Оптимизация затрат

Следующие рекомендации помогут оптимизировать затраты на кластер AKS.

  • Ознакомьтесь с разделом Оптимизация затрат в Azure Well-Architected Framework для AKS.

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

  • Резервирования Azure могут помочь вам сэкономить деньги, зафиксировав планы на один или три года для нескольких продуктов, таких как виртуальные машины в кластере AKS. Вы получаете скидки, резервируя емкость. Используйте резервирования Azure для хранилища и вычислений , чтобы снизить затраты на узлы агента.

    Резервирования могут снизить затраты на ресурсы до 72 % от цен с оплатой по мере использования и не повлиять на состояние среды выполнения ресурсов. Когда вы приобретете резервирование, соответствующая скидка автоматически применяется ко всем подходящим ресурсам. Вы можете приобрести резервирования в портал Azure или с помощью REST API Azure, PowerShell или Azure CLI. Если вы используете операционные средства, использующие рабочие области Log Analytics, рассмотрите возможность использования резервирования для этого хранилища.

  • Добавьте один или несколько пулов точечных узлов в кластер AKS. Пул точечных узлов — это пул узлов, поддерживаемый точечными Масштабируемые наборы виртуальных машин Azure. Использование точечных виртуальных машин для узлов кластера AKS использует неиспользуемую емкость Azure при значительной экономии средств. Объем доступной неиспользуемой емкости зависит от нескольких факторов, включая размер узла, регион и время суток. Azure выделяет точечные узлы, если есть доступная емкость, но соглашение об уровне обслуживания для точечных узлов отсутствует. Точечный масштабируемый набор, который поддерживает пул точечных узлов, развертывается в одном домене сбоя и не предоставляет гарантий высокой доступности. Когда Azure требуется обратная емкость, инфраструктура Azure вытесает точечные узлы.

    При создании пула точечных узлов можно определить максимальную цену за час и включить средство автомасштабирования кластера, которое рекомендуется для пулов точечных узлов. Средство автомасштабирования кластера масштабирует и масштабирует количество узлов в пуле узлов в зависимости от выполняемых рабочих нагрузок. Для пулов точечных узлов средство автомасштабирования кластера масштабирует количество узлов после вытеснения, если узлы по-прежнему необходимы. Дополнительные сведения см. в статье Добавление пула точечных узлов в кластер Служба Azure Kubernetes (AKS).

  • Выберите правильный размер виртуальной машины для пулов узлов кластера AKS в зависимости от потребностей ЦП и памяти рабочих нагрузок. Azure предлагает множество различных типов экземпляров виртуальных машин, которые соответствуют широкому спектру вариантов использования с различными сочетаниями ресурсов ЦП, памяти, хранилища и сети. Каждый тип имеет один или несколько размеров, что позволяет легко масштабировать ресурсы.

    Теперь вы можете развертывать контейнерные приложения и управлять ими с помощью AKS, работающих на процессорах На основе ARM Ampere Altra. Дополнительные сведения см. в статье Azure Виртуальные машины с процессорами Ampere Altra на основе ARM.

  • Создайте несколько пулов узлов с разными размерами виртуальных машин для специальных целей и рабочих нагрузок. Используйте ограничения и разрешения Kubernetes , а также метки узлов для размещения ресурсоемких приложений в конкретных пулах узлов, чтобы избежать проблем с шумом соседей. Сохраняйте эти ресурсы узлов доступными для рабочих нагрузок, которым они требуются, и не планируйте другие рабочие нагрузки на этих узлах. Использование разных размеров виртуальных машин для разных пулов узлов также может оптимизировать затраты. Дополнительные сведения см. в статье Использование нескольких пулов узлов в Служба Azure Kubernetes (AKS).

  • Пулы узлов в системном режиме должны содержать по крайней мере один узел, а пулы узлов в пользовательском режиме могут содержать ноль или более узлов. По возможности можно настроить пул узлов в пользовательском режиме для автоматического масштабирования между 0N узлами. Вы можете настроить рабочие нагрузки для горизонтального автомасштабирования pod. Базовое автомасштабирование на основе ЦП и памяти или использование автоматического масштабирования на основе событий Kubernetes (KEDA) для создания автомасштабирования на основе метрик внешней системы, такой как Apache Kafka, RabbitMQ или Служебная шина Azure.

  • Убедитесь в правильной настройке запросов и ограничений для модулей pod, чтобы повысить плотность приложений и избежать назначения слишком большого количества ресурсов ЦП и памяти для рабочих нагрузок. Отслеживайте среднее и максимальное потребление ЦП и памяти с помощью Prometheus или Container Insights. Правильно настройте ограничения и квоты для модулей pod в манифестах YAML, диаграммах Helm и манифестах Kustomize для развертываний.

  • Используйте объекты ResourceQuota , чтобы задать квоты на общий объем памяти и ЦП для всех модулей pod, работающих в заданном пространстве имен. Систематическое использование квот ресурсов позволяет избежать проблем с шумными соседями, повысить плотность приложений, а также сократить количество узлов агента и общие затраты. Кроме того, используйте объекты LimitRange для настройки запросов ЦП и памяти по умолчанию для модулей pod в пространстве имен.

  • Используйте Экземпляры контейнеров для ускорения.

  • Рабочие нагрузки AKS могут не выполняться непрерывно, например определенные рабочие нагрузки в пулах узлов кластера разработки. Чтобы оптимизировать затраты, можно полностью отключить кластер AKS или остановить один или несколько пулов узлов в кластере AKS. Дополнительные сведения см. в разделах Остановка и запуск кластера Служба Azure Kubernetes (AKS) и Запуск и остановка пула узлов в Служба Azure Kubernetes (AKS).

  • Политика Azure интегрируется с AKS с помощью встроенных политик, чтобы применять централизованные, согласованные в масштабе принудительного применения и меры безопасности. Включите надстройку Политика Azure в кластере и примените стандартные запросы ЦП и ограничения ресурсов памяти, которые гарантируют, что ограничения ресурсов ЦП и памяти определены в контейнерах кластера.

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

  • Используйте бюджеты и проверки управления затратами Майкрософт для отслеживания расходов.

Управление затратами

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

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

  • Управление затратами и выставление счетов Azure — это набор средств Майкрософт, которые помогают анализировать, управлять и оптимизировать затраты на рабочую нагрузку Azure. Используйте набор, чтобы убедиться, что ваша организация использует преимущества, предоставляемые облаком.

  • Ознакомьтесь с рекомендациями по управлению Cloud Adoption Framework дисциплины "Управление затратами", чтобы лучше понять, как управлять затратами на облако и управлять ими.

  • Изучите средства с открытым кодом, такие как KubeCost , для мониторинга и управления затратами на кластер AKS. Вы можете область распределение затрат для развертывания, службы, метки, pod и пространства имен, что обеспечивает гибкость при отображении и зарядке пользователей кластера.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально она была написана следующими участниками.

Основные авторы:

Другие участники:

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

Дальнейшие действия