Настройка политик квоты ресурсов AKS с помощью политики Azure для Kubernetes

Завершено

Политика Azure помогает применять стандарты и оценивать соответствие в масштабе облачной среды. Рекомендуется, чтобы компании реализовали бизнес-правила, чтобы определить, как сотрудники могут использовать корпоративное программное обеспечение, оборудование и другие ресурсы в организации. Таким образом, предприятия используют политики для принудительного применения, проверки и определения доступа. Политика помогает организации соответствовать требованиям к управлению и юридическим требованиям, реализовывать рекомендации и устанавливать соглашения организации.

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

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

Что такое контроллер допуска Kubernetes?

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

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

Что такое веб-перехватчик контроллера допуска?

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

Веб-перехватчики для приема бывают двух типов: валидирующий веб-перехватчик или мутирующий веб-перехватчик. Сначала вызывается мутационный веб-перехватчик, который может изменять объекты и применять к ним значения по умолчанию, отправляемые на сервер API. Валидатор проверяет значения объектов и может отклонять запросы.

Что такое Open Policy Agent (OPA)?

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

Что такое OPA Gatekeeper?

OPA Gatekeeper — это веб-перехватчик контроллера допуска Kubernetes с открытым исходным кодом, который реализует политики на основе пользовательских определений ресурсов (CRD) в соответствии с синтаксисом OPA.

Цель OPA Gatekeeper — разрешить настраивать политики допуска с помощью конфигурации вместо жестко закодированных правил политики для служб. Кроме того, он предоставляет полное представление о кластере для выявления ресурсов, нарушающих политику.

Используйте OPA Gatekeeper для определения политик на уровне организации с правилами:

  • Максимальные лимиты ресурсов, такие как лимиты ЦП и памяти, применяются для всех настроенных подов.

  • Развертывание образов допускается только из утвержденных репозиториев.

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

  • Обязать, чтобы службы кластера имели глобально уникальные селекторы.

Политика Azure для AKS

Политика Azure расширяет OPA Gatekeeper версии 3 и интегрируется с AKS с помощью встроенных политик. Эти политики применяются в масштабах на вашем кластере для обеспечения и соблюдения централизованного и единообразного подхода.

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

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

Как включить дополнение политики Azure для AKS

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

  1. Зарегистрируйте два поставщика ресурсов с помощью команды az provider register:

    • Microsoft.ContainerService и Microsoft.PolicyInsights: эти поставщики ресурсов поддерживают такие действия, как запрос сведений о событиях политики и управлении контейнерами. Это действия для запроса, создания, обновления или удаления исправлений политики.

    Ниже приведен пример двух команд регистрации:

    az provider register --namespace Microsoft.ContainerService
    az provider register --namespace Microsoft.PolicyInsights
    
  2. Зарегистрируйте функцию AKS-AzurePolicyAutoApprove в поставщике ресурсов Microsoft. ContainerService. Ниже приведен пример команды:

    az feature register --namespace Microsoft.ContainerService --name AKS-AzurePolicyAutoApprove
    
  3. После подтверждения успешной регистрации компонентов выполните команду az provider register с параметром --namespace для распространения новой регистрации компонентов. Ниже приведен пример команды:

    az provider register -n Microsoft.ContainerService
    
  4. Включите надстройку политики Azure:

    az aks enable-addons \
        --addons azure-policy \
        --name myAKSCluster \
        --resource-group myResourceGroup
    

    Активация надстройки запланирует рабочие нагрузки в двух пространствах имен на вашем кластере. Первое пространство имен — kube-system, которое содержит azure-policy и azure-policy-webhook. Второе пространство имен — система контроля доступа, которая содержит gatekeeper-controller-manager. Эти рабочие нагрузки отвечают за оценку запросов, отправленных в плоскость управления AKS. Основываясь на ваших настроенных политиках, ваш вебхук политики может разрешать или отклонять запросы.

Назначьте встроенное определение политики

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

Для каждой политики перечислены следующие общие сведения:

Пункт Описание Пример
имени Название политики. [предварительная версия]. Убедитесь, что ограничения ресурсов ЦП и памяти контейнера не превышают указанные ограничения в кластере Kubernetes.
Объем Группа ресурсов подписки, к которой применяется эта политика. mySubscription/rg-akscostsaving.
состояние соответствия требованиям Состояние назначенных политик. совместимые, конфликтующие, не запущеныили не зарегистрированы.
Соответствие ресурсам Процент ресурсов, соответствующих политике. Этот расчет учитывает соответствующие, несоответствующие и конфликтующие ресурсы. 100
несоответствующие ресурсы Количество уникальных ресурсов, которые нарушают одно или несколько правил политики. 3
несоответствующие политики Количество несоответствуемых политик. 5

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

Назначение политик

Чтобы назначить политику, выберите параметр Назначения в разделе Создание на панели навигации политики Azure.

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

Назначение инициативы

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

Назначение политики

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

Как назначить политику

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

Например, чтобы ограничить развертывание ресурсов разработчиками в облачной среде компании, можно назначить одну из встроенных политик Azure для службы Azure Kubernetes. Имя политики — убедитесь, что ограничения ресурсов ЦП и памяти контейнера не превышают указанные ограничения в кластере Kubernetes.

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

Давайте рассмотрим настраиваемые параметры при назначении политики.

Основные сведения о политике

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

Пункт Описание
Объем Область определяет, на какие ресурсы или группы ресурсов распространяется действие назначения политики. Это значение основано на подписке или группе управления. Вы можете исключить ресурсы из выбора на одном уровне ниже уровня области.
Определения политики Политика, которую вы хотите применить. Вы можете выбрать один из нескольких встроенных параметров политики.
название задания Имя, используемое для идентификации назначенной политики.
описание Описание свободного текста, описывающее политику.
принудительное соблюдение политик Вы можете выбрать включено и отключено. Если параметр отключен, политика не применяется, и запросы не отклоняются при несоблюдении требований.
назначено Значение свободного текста, которое по умолчанию используется зарегистрированным пользователем. Это значение можно изменить.

Параметры политики

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

Например, необходимо убедиться, что ограничения ресурсов ЦП и памяти контейнера не превышают указанные ограничения в политике кластера Kubernetes; для этого требуется задать три параметра.

  • Максимально допустимое количество единиц ЦП для контейнера
  • Максимальное количество байтов памяти, разрешенных для контейнера
  • Список пространств имен Kubernetes для исключения из политики

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

Все политики имеют настройку эффекта . Этот параметр включает или отключает выполнение политики. Как и в случае с параметрами, политики также могут иметь различные параметры эффект.

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

В этой таблице перечислены все эффекты, которые в настоящее время поддерживаются в определениях политик:

Эффект Описание
добавление Добавление дополнительных полей в запрошенный ресурс
Аудит Создает событие предупреждения в журнале действий
AuditIfNotExists Включает аудит ресурсов, связанных с ресурсом, соответствующим условию.
запретить Блокирует запрос ресурсов, который не соответствует определенным стандартам в соответствии с определением политики, и вызывает сбой запроса.
DeployIfNotExists Выполняет развертывание шаблона, когда выполняется условие
отключены Полезно для тестирования ситуаций или когда в определении политики параметризован эффект, и вы хотите отключить одно назначение.
Изменить Добавление, обновление или удаление тегов в ресурсе во время создания или обновления

Исправление политики

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

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