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

Завершено

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

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

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

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

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

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

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

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

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

Что такое агент открытой политики (OPA)?

Агент открытой политики (open policy agency, OPA) — это модуль политик общего назначения с открытым кодом, предоставляющий декларативный язык высокого уровня для написания политик. Политики позволяют устанавливать правила, регулирующие поведение систем.

Что такое OPA Gatekeeper?

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

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

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

  • максимальные ограничения ресурсов, например ЦП и памяти, принудительно применяются для всех настроенных объектов pod;

  • развертывание образов разрешено только из утвержденных репозиториев;

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

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

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

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

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

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

Включение надстройки политики Azure для AKS

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

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

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

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

    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. Панель мониторинга позволяет детализации выполнять детализацию до уровня детализации для каждого ресурса на уровне политики. Она помогает обеспечивать соответствие политикам применения ресурсов, используя массовое исправление для имеющихся ресурсов и автоматическое исправление для новых ресурсов.

По каждой политике отображаются следующие данные.

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

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

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

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

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

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

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

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

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

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

Каждая политика настраивается в несколько этапов. Объем необходимой информации зависит от типа выбранной политики.

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

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

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

Основная информация о политике

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

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

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

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

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

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

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

У всех политик есть параметр Действие. Этот параметр включает или отключает выполнение политики. Как и в случае с параметрами, для политик могут использоваться разные значения параметра Действие.

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

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

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

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

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

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