Рекомендации по управлению операциями для Служба Azure Kubernetes
Kubernetes — это относительно новая технология, которая быстро развивается и имеет впечатляющую экосистему. Таким образом, управлять им и защищать их может быть сложно.
Базовые показатели операций для AKS
Вы можете работать над эффективностью операций и успехом клиентов, правильно разработав решение Служба Azure Kubernetes (AKS) с учетом управления и мониторинга.
Рекомендации по проектированию
Примите во внимание следующие факторы.
- Учитывайте ограничения AKS. Используйте несколько экземпляров AKS, если вам нужно выполнить масштабирование для обхода таких ограничений.
- Помните о возможностях логически изолировать рабочие нагрузки в кластере и физически в отдельных кластерах.
- Помните о возможностях управлять потреблением ресурсов отдельных рабочих нагрузок.
- Помните о возможностях передавать Kubernetes данные о работоспособности рабочих нагрузок.
- Помните о различных размерах виртуальных машин и о влиянии использования одной из них. Более крупные виртуальные машины могут обрабатывать более высокую нагрузку. Виртуальные машины малого размера можно заменить другими, если они недоступны в ходе планового или внепланового обслуживания. Кроме того, следует учитывать пулы узлов и виртуальные машины в масштабируемом наборе, что позволяет использовать виртуальные машины разных размеров в одном кластере. Более крупные виртуальные машины являются более оптимальными, так как AKS резервирует меньший процент ресурсов, что делает больше ресурсов доступными для ваших рабочих нагрузок.
- Помните о возможностях мониторинга и ведения журнала для AKS. Kubernetes состоит из различных компонентов, и мониторинг и ведение журнала должны предоставлять представление о работоспособности, тенденциях и потенциальных проблемах.
- Основываясь на мониторинге и ведении журнала, Kubernetes или приложениях, работающих поверх, может создаваться множество событий. Оповещения позволяют отделять исторические записи журнала от тех записей, которые требуют немедленных действий.
- Помните об обновлениях, которые нужно установить. На уровне Kubernetes существуют основные, дополнительные версии и версии исправлений. Клиент должен применить эти обновления, чтобы поддерживать их в соответствии с политикой в вышестоящий Kubernetes. На уровне узла рабочей роли для установки исправлений ядра ОС может потребоваться перезагрузка, которую должен выполнить клиент, и выполнить обновление до новых версий ОС. Помимо обновления вручную можно задать канал автоматического обновления для кластера.
- Учитывайте ограничения ресурсов кластера и отдельные рабочие нагрузки.
- Помните о различиях между средством горизонтального автомасштабирования и средством автомасштабирования кластера.
- Рассмотрите возможность обеспечения защиты трафика между pod с помощью сетевых политик и подключаемого модуля политик Azure.
- Чтобы устранить неполадки с приложением и службами, работающими в AKS, может потребоваться просмотреть журналы, созданные компонентами уровня управления. Может потребоваться включить журналы ресурсов для AKS , так как ведение журнала не включено по умолчанию.
Рекомендации
Изучите сведения об ограничениях AKS:
Используйте логическую изоляцию на уровне пространства имен для разделения приложений, команд, сред и бизнес-подразделений. Многотенантность и изоляция кластеров. Кроме того, пулы узлов могут помочь в узлах с разными спецификациями узлов, а обслуживание, например Kubernetes, обновляет несколько пулов узлов.
Планируйте и применяйте квоты ресурсов на уровне пространства имен. Если pod не определяют запросы ресурсов и ограничения, отклоните развертывание с помощью политик и т. д. Это не относится к модулям pod kube-system, так как не все модули pod kube-system имеют запросы и ограничения. Наблюдайте за использованием ресурсов и при необходимости изменяйте квоты. Основные возможности планировщика
Добавьте пробы работоспособности в свои pod. Убедитесь, что pod включают
livenessProbe
,readinessProbe
иstartupProbe
пробы работоспособности AKS.Используйте размеры виртуальных машин, достаточно большие, чтобы содержать несколько экземпляров контейнеров, чтобы получить преимущества повышенной плотности, но не настолько большой, чтобы кластер не смог справиться с рабочей нагрузкой неработоспособных узлов.
Используйте решение для мониторинга. Аналитика контейнеров Azure Monitor настроена по умолчанию и обеспечивает простой доступ ко многим аналитическим сведениям. Вы можете использовать интеграцию Prometheus, если хотите получать детализированные сведения, или использовать Prometheus напрямую. Если вы также хотите запускать приложение мониторинга в AKS, используйте Azure Monitor для мониторинга приложения.
Используйте оповещения метрик аналитики контейнеров Azure Monitor для предоставления уведомлений, когда требуется прямое действие.
Используйте функцию автоматического масштабирования пула узла вместе со средством автомасштабирования pod, чтобы удовлетворить требования приложения и упростить обработку нагрузки в пиковые часы.
Используйте Помощник по Azure, чтобы получить рекомендации по затратам, безопасности, надежности, эффективности работы и производительности. Кроме того, используйте Microsoft Defender для облака для предотвращения и обнаружения угроз, таких как уязвимости образов.
Используйте Kubernetes с поддержкой Azure Arc для управления кластерами Kubernetes без AKS в Azure с помощью Политика Azure, Defender для облака, GitOps и т. д.
Используйте запросы и ограничения pod для управления вычислительными ресурсами в кластере AKS. Запросы и ограничения pod сообщают планировщику Kubernetes о том, какие вычислительные ресурсы следует назначить pod.
Непрерывность бизнес-процессов и аварийное восстановление для защиты и восстановления AKS
Ваша организация должна разработать функции уровня платформы Службы Azure Kubernetes, соответствующие ее конкретным требованиям. Эти службы приложений имеют требования, связанные с целевым временем восстановления (RTO) и целевой точкой восстановления (RPO). Существует несколько рекомендаций по обеспечению аварийного восстановления AKS. Первым шагом является определение соглашения об уровне обслуживания (SLA) для вашей инфраструктуры и вашего приложения. Изучите сведения о соглашении об уровне обслуживания для Службы Azure Kubernetes (AKS). Информацию о вычислении времени работы за месяц см. в разделе Сведения о соглашении об уровне обслуживания.
Рекомендации по проектированию
Примите во внимание следующие факторы.
Кластер AKS должен использовать несколько узлов в пуле узлов, чтобы обеспечить минимальный уровень доступности для приложения.
Задайте ограничения и запросы объектов pod. Установка этих ограничений позволяет Kubernetes:
- эффективно предоставлять ресурсы ЦП и памяти объектам pod;
- добиться повышенной плотности контейнеров на узле.
Ограничения также позволяют повысить надежность и снизить затраты за счет более эффективного использования оборудования.
Пригодность AKS для Зон доступности или групп доступности.
- Выберите регион с поддержкой зон доступности.
- Зоны доступности можно задать только при создании пула узлов и невозможно будет изменить позднее. Поддержка нескольких зон применяется только к пулам узлов.
- Чтобы максимально полно использовать преимущество зон, их также должны поддерживать зависимости служб. Если зависимая служба не поддерживает зоны, сбой зоны может привести к сбою этой службы.
- Запустите несколько кластеров AKS в разных парных регионах для повышения доступности, превышающей Зоны доступности. Если ресурс Azure поддерживает геоизбыточность, укажите расположение, где у избыточной службы есть дополнительный регион.
Вы должны знать рекомендации по аварийному восстановлению в AKS. После этого определите, можно ли их применять к кластерам AKS, используемым для Azure Dev Spaces.
Обеспечьте согласованное создание резервных копий для приложений и данных.
- Службу без отслеживания состояния можно эффективно реплицировать.
- Если необходимо сохранить состояние в кластере, регулярно создавайте резервные копии данных в парном регионе. Одно из соображений заключается в том, что правильное хранение состояния в кластере может быть сложной задачей.
Обновление и обслуживание кластера.
- Всегда поддерживайте кластер в актуальном состоянии.
- Не забывайте о процессе выпуска и устаревания.
- Планирование обновлений и обслуживания.
Сетевое подключение в случае отработки отказа.
- Выберите маршрутизатор трафика, способный распределять трафик между зонами или регионами, с учетом своих требований. Эта архитектура развертывает службу Azure Load Balancer, так как она может распределять трафик, отличный от веб-трафика, между зонами.
- Если вам нужно распределить трафик между регионами, рекомендуется использовать Azure Front Door.
Плановая и внеплановая отработка отказа.
- При настройке каждой службы Azure выберите компоненты, поддерживающие аварийное восстановление. Например, эта архитектура позволяет Реестр контейнеров Azure для георепликации. Вы по-прежнему можете извлекать образы из реплицированного региона, если регион не работает.
Поддерживайте возможности разработки DevOps для достижения целей уровня обслуживания.
Определите, требуется ли соглашение об уровне обслуживания с финансовыми гарантиями для конечной точки сервера API Kubernetes.
Рекомендации по проектированию
Ниже приведены рекомендации по проектированию:
Используйте три узла для системного пула узлов. Для пользовательского пула узлов используйте не менее двух узлов. Если требуется более высокий уровень доступность, настройте дополнительные узлы.
Изолируйте приложение от системных служб, поместив его в отдельный пул узлов. В этом случае службы Kubernetes выполняются на выделенных узлах и не конкурируют с другими службами. Используйте теги, метки и отметки для обозначения пула узлов при планировании рабочей нагрузки.
Регулярное обслуживание кластера, например установка своевременных обновлений, является критически важным фактором для обеспечения надежности. Помните о окне поддержки версий Kubernetes в AKS и планируйте обновления. Кроме того, рекомендуется отслеживать работоспособность объектов pod с помощью проб.
По возможности удаляйте состояние службы из контейнеров. Вместо этого используйте платформу как услугу (PaaS) Azure, которая поддерживает репликацию в нескольких регионах.
Обеспечьте доступность ресурсов pod. Настоятельно рекомендуется, чтобы в развертываниях были указаны требования к ресурсам pod. Тогда планировщик может надлежащим образом запланировать объект pod. Надежность устаревает, если модули pod не запланированы.
Настройте несколько реплик в развертывании, чтобы обрабатывать перебои в работе, например сбои оборудования. Для запланированных событий, таких как обновления и обновления, бюджет сбоев может гарантировать наличие необходимого количества реплик pod для обработки ожидаемой нагрузки приложения.
Ваши приложения могут использовать для своих данных службу хранилища Azure. Так как приложения распределены между несколькими кластерами AKS в разных регионах, необходимо синхронизировать хранилище. Ниже приведены два распространенных способа репликации хранилища.
- Асинхронная репликация на основе инфраструктуры
- асинхронная репликация на основе приложений;
Оцените ограничения pod. Выполните тестирование и определите базовые показатели. Начните с одинаковых значений для запросов и ограничений. Затем постепенно корректируйте эти значения, пока не установите порог, способный привести к нестабильной работе кластера. Ограничения pod можно указать в манифестах развертывания.
Встроенные функции предоставляют решение для непростой задачи по обработке сбоев и нарушений в архитектуре службы. Эти конфигурации помогают упростить разработку и автоматизацию развертывания. Если в организации определен стандарт для соглашения об уровне обслуживания, целевого времени восстановления и целевой точки восстановления, она может использовать встроенные службы для Kubernetes и Azure, чтобы достичь своих бизнес-целей.
Задайте бюджеты неработоспособности pod. Этот параметр определяет количество реплик в развертывании, которые могут быть отключены во время обновления или модернизации.
Применение квот ресурсов для пространств имен службы. Квота ресурсов в пространстве имен гарантирует, что запросы и ограничения pod правильно заданы в развертывании.
- Установка квот ресурсов на уровне кластера может привести к проблемам при развертывании партнерских служб, у которых нет соответствующих запросов и ограничений.
Сохраните образы контейнера в Реестре контейнеров Azure и настройте георепликацию реестра в каждый регион AKS.
Используйте соглашение об уровне обслуживания по времени безотказной работы , чтобы обеспечить более высокое соглашение об уровне обслуживания для всех кластеров, где размещаются рабочие нагрузки. Соглашение об уровне обслуживания с гарантией доступности 99,95 % доступности конечной точки сервера API Kubernetes для кластеров, использующих Зоны доступности, и 99,9 % доступности для кластеров, которые не используют Зоны доступности. На узлы, пулы узлов и другие ресурсы распространяется соглашение об уровне обслуживания. AKS предлагает бесплатный уровень с целевым уровнем обслуживания (SLO) 99,5 % для компонентов уровня управления. Кластеры без включенного SLA времени доступности не следует использовать для рабочих нагрузок.
Используйте несколько регионов и расположений пиринга для подключения Azure ExpressRoute.
Если возникает сбой, затрагивающий расположение поставщика пиринга или регион Azure, избыточная архитектура гибридной сети помогает обеспечить непрерывное подключение между различными местоположениями.
Соединяйте регионы с помощью глобального пиринга между виртуальными сетями. Если кластеры должны взаимодействовать друг с другом, обе виртуальных сети можно соединить с помощью пиринга между виртуальными сетями. Эта технология соединяет виртуальные сети друг с другом, обеспечивая высокую пропускную способность в магистральной сети Майкрософт, даже в разных географических регионах.
Благодаря разделенному протоколу на основе TCP с произвольной передачей данных служба Azure Front Door гарантирует, что конечные пользователи получат быстрое подключение к ближайшей точке подключения Front Door. Другие функции Azure Front Door включают в себя следующее:
- завершение сеанса TLS;
- Личный домен
- Брандмауэр веб-приложения
- Переопределение URL-адресов
- Сходство сеансов
Оцените требования к трафику для приложения, чтобы выбрать оптимальное решение.