Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ AKS Automatic ✔️ AKS Standard
При управлении кластерами в службе Azure Kubernetes (AKS) часто необходимо изолировать команды и рабочие нагрузки. С логической изоляцией можно использовать один кластер AKS для нескольких рабочих нагрузок, команд или сред. Пространства имен Kubernetes образуют границу логической изоляции для рабочих нагрузок и ресурсов. Выполнение логической изоляции включает реализацию скриптов и процессов для создания пространств имен, задания ограничений ресурсов, применения политик сети и предоставления команде доступа через управление доступом на основе ролей. Узнайте, как использовать управляемые пространства имен в службе Azure Kubernetes (AKS), чтобы упростить управление пространствами имен, многотенантность кластера и изоляцию ресурсов.
Логическое разделение кластеров обычно обеспечивает более высокую плотность pod по сравнению с физически изолированными кластерами, при этом в кластере остается меньше избыточной вычислительной мощности в режиме простоя. В сочетании с автомасштабированием кластера или автоматической подготовкой узла можно масштабировать количество узлов вверх или вниз до удовлетворения требований. Этот подход лучших практик позволяет свести к минимуму затраты, поддерживая только необходимое количество узлов.
Политики сети
Политики сети — это ресурсы Kubernetes, которые можно использовать для управления потоком трафика между модулями pod, пространствами имен и внешними конечными точками. Политики сети позволяют определять правила для входящего (входящего) и исходящего (исходящего) трафика, гарантируя, что разрешено только авторизованное взаимодействие. Применяя политики сети, вы можете повысить безопасность и изоляцию рабочих нагрузок в кластере.
Замечание
Правило политики входящего трафика по умолчанию разрешает трафик в том же пространстве имен, придерживаясь безопасной позиции по умолчанию. Если вам нужно, чтобы службы Kubernetes, входящего трафика или шлюзы были доступны извне пространства имен, где они развернуты, например из контроллера входящего трафика, развернутого в отдельном пространстве имен, необходимо выбрать "Разрешить все". Затем вы можете применить собственную политику сети, чтобы ограничить входящий трафик только из этого пространства имен.
Управляемые пространства имен поставляются с набором встроенных политик.
- Разрешить все: разрешает весь сетевой трафик.
- Разрешить одно пространство имен: разрешает весь сетевой трафик в одном пространстве имен.
- Запретить все: запрещает весь сетевой трафик.
Вы можете применить любые встроенные политики для правил входящего трафика и исходящего трафика , и они имеют следующие значения по умолчанию.
| Политика | Значение по умолчанию |
|---|---|
| Вход | Разрешить то же пространство имен |
| Выход | Разрешить все |
Замечание
Пользователи, у которых в назначенной им роли Microsoft Entra ID есть такие действия, как Microsoft.ContainerService/managedClusters/networking.k8s.io/networkpolicies/write и Azure Kubernetes Service RBAC Writer, могут добавлять дополнительные сетевые политики через API Kubernetes.
Например, если администратор применяет Deny All политику для ingress/выходящего трафика, а пользователь применяет Allow политику для пространства имен через API Kubernetes, Allow политика имеет приоритет над Deny All политикой, а трафик разрешен в пространстве имен.
Квоты ресурсов
Квоты ресурсов — это ресурсы Kubernetes, используемые для управления и ограничения потребления ресурсов пространств имен в кластере. Они позволяют администраторам определять ограничения на объем ЦП, памяти, хранилища или других ресурсов, используемых рабочими нагрузками в пространстве имен. Применяя квоты ресурсов, вы можете обеспечить справедливое распределение ресурсов, предотвращать чрезмерное использование ресурсов и поддерживать стабильность кластера.
Управляемые пространства имен можно создать со следующими квотами ресурсов:
- Запросы и ограничения ЦП: определите минимальный и максимальный объем ресурсов ЦП, которые рабочие нагрузки в пространстве имен могут запрашивать или использовать. Квота гарантирует, что рабочие нагрузки имеют достаточно ресурсов ЦП для работы, предотвращая чрезмерное использование, которое может повлиять на другие пространства имен. Квота определена в форме миллиCPU.
-
Запросы и ограничения памяти. Укажите минимальный и максимальный объем ресурсов памяти, которые рабочие нагрузки в пространстве имен могут запрашивать или использовать. Квота помогает поддерживать стабильность, избегая избыточности памяти и обеспечивая справедливое распределение ресурсов в пространствах имен. Квота определяется в форме эквивалентов в степени двойки, таких как
Ei,Pi,Ti,Gi,Mi,Ki.
Метки и заметки
Метки и заметки Kubernetes — это метаданные, присоединенные к объектам Kubernetes, таким как пространства имен, для предоставления дополнительных сведений. Метки — это пары "ключ-значение", используемые для упорядочивания и выбора ресурсов, что позволяет эффективно группировать и запрашивать. Заметки хранят неидентифицированные метаданные, такие как сведения о конфигурации или операционные инструкции, используемые средствами или системами.
При необходимости можно задать для пространства имен метки и аннотации Kubernetes.
Политика внедрения
Политика внедрения определяет, как существующее пространство имен в Kubernetes обрабатывается при создании управляемого пространства имен.
Предупреждение
Подключение существующего пространства имен, чтобы оно стало управляемым, может вызвать сбои. Если применена квота ресурса меньше, чем то, что уже запрашивается модулями pod, новые развертывания и модули pod, превышающие квоту, запрещены. Существующие развертывания не затрагиваются, но масштабирование запрещено. Применение политик сети к существующему пространству имен может повлиять на существующий трафик. Убедитесь, что политики тестируются и проверяются, чтобы избежать непредвиденных нарушений связи между pod'ами и внешними конечными точками.
Имеются следующие варианты:
- Никогда: если пространство имен уже существует в кластере, попытка создать это пространство имен в качестве управляемого пространства имен завершается ошибкой.
- IfIdentical: выполните управление существующим пространством имен, если нет различий между существующим пространством имен и требуемой конфигурацией.
- Всегда: Всегда берите на себя управление существующим пространством имен, даже если некоторые поля в пространстве имен могут быть перезаписаны.
Удаление политики
Политика удаления указывает, как пространство имен Kubernetes обрабатывается при удалении ресурса управляемого пространства имен.
Предупреждение
Удаление управляемого пространства имен с помощью политики delete приводит к удалению всех ресурсов в этом пространстве имен, таких как развертывания, службы, входящий трафик и другие объекты Kubernetes. Прежде чем продолжить, убедитесь, что вы создайте резервную копию или переносите все критически важные ресурсы.
Имеются следующие варианты:
-
Сохранить: удалите только ресурс управляемого пространства имен, сохраняя пространство имен Kubernetes нетронутым. Кроме того,
ManagedByARMметка удаляется из пространства имен. - Удаление: удалите ресурс управляемого пространства имен и пространство имен Kubernetes вместе.
Встроенные роли управляемых пространств имен
Управляемые пространства имен используют следующие встроенные роли для плоскости управления.
| Должность | Описание |
|---|---|
| Соавтор пространства имен в службе Azure Kubernetes | Разрешает доступ к созданию, обновлению и удалению управляемых пространств имен в кластере. |
| Пользователь пространства имен службы Azure Kubernetes | Разрешает доступ только для чтения к управляемому пространству имен в кластере. Разрешает доступ к списку учетных данных в пространстве имен. |
Управляемые пространства имен используют следующие встроенные роли для плоскости данных.
| Должность | Описание |
|---|---|
| Читатель RBAC в службе Azure Kubernetes | Предоставляет доступ только для чтения, позволяя просматривать большинство объектов в пространстве имен. Это не позволяет просматривать роли или привязки ролей. Эта роль не позволяет просматривать секреты, так как чтение содержимого секретов обеспечивает доступ к учетным данным ServiceAccount в пространстве имен, что позволит API получить доступ как к любому ServiceAccount в пространстве имен (форма эскалации привилегий). |
| Модуль записи RBAC службы Azure Kubernetes | Разрешает доступ на чтение и запись к большинству объектов в пространстве имён. Эта роль не позволяет просматривать или изменять роли или привязки ролей. Однако эта роль позволяет получать доступ к секретам и запускать Pods как любой ServiceAccount в пространстве имен, поэтому её можно использовать для получения уровней доступа к API любого ServiceAccount в пространстве имен. |
| Администратор RBAC службы Azure Kubernetes | Разрешает доступ на чтение и запись к большинству ресурсов в пространстве имен, включая возможность создавать роли и привязки ролей в пространстве имен. Эта роль не предоставляет права записи ни к квоте ресурса, ни к самому пространству имен. |
Управляемые пространства имен: варианты использования
Правильная настройка пространств имен с связанными квотами или политиками сети может быть сложной и потребляющей много времени. Управляемые пространства имен позволяют настраивать предварительно настроенные пространства имен в кластерах AKS, с которыми можно взаимодействовать с помощью Azure CLI.
В следующих разделах описаны некоторые распространенные варианты использования для управляемых пространств имен.
Управление командами и ресурсами в AKS
Предположим, вы администратор небольшого стартапа. Вы подготовили кластер AKS и хотите настроить пространства имен для разработчиков из финансовых, юридических и конструкторских групп. Так как вы настраиваете среду вашей компании, необходимо убедиться, что доступ жестко контролируется, ресурсы правильно ограничены и среды организованы правильно.
Финансовая команда принимает формы и файлы от команд по всей компании, но они содержат конфиденциальную информацию, которая в идеале не должна покидать их среду. Их приложения и рабочие процессы легче на стороне вычислений, но потребляют много памяти. В результате вы решили настроить пространство имен, которое позволяет всем сетевым входящего трафика, исходящего трафика сети только в пределах своего пространства имен, и соответствующим образом ограничить их ресурсы. Метка пространства имен помогает легко определить, какая команда использует ее.
az aks namespace add \ --name $FINANCE_NAMESPACE \ --cluster-name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --cpu-request 250m \ --cpu-limit 500m \ --memory-request 512Mi \ --memory-limit 2Gi \ --ingress-policy AllowAll \ --egress-policy AllowSameNamespace \ --labels team=financeЮридическая команда занимается главным образом конфиденциальными данными. Их приложения используют достаточное количество памяти, но требуют небольших вычислительных ресурсов. Вы решили настроить пространство имен, которое крайне ограничительно для политик входящего и исходящего трафика, и соответствующим образом ограничить их квоты ресурсов.
az aks namespace add \ --name $LEGAL_NAMESPACE \ --cluster-name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --cpu-request 250m \ --cpu-limit 500m \ --memory-request 2Gi \ --memory-limit 5Gi \ --ingress-policy DenyAll \ --egress-policy DenyAll \ --labels team=legalКоманда разработчиков должна иметь возможность свободно передавать данные, чтобы продемонстрировать свою работу по всей компании. Они также поощряют команды отправлять им содержимое для справки. Их приложения являются интенсивными и требуют большого блока памяти и ЦП. Вы решили настроить их с минимальным ограничением пространства имен и выделить для них размерное количество ресурсов.
az aks namespace add \ --name $DESIGN_NAMESPACE \ --cluster-name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --cpu-request 2000m \ --cpu-limit 2500m \ --memory-request 5Gi \ --memory-limit 8Gi \ --ingress-policy AllowAll \ --egress-policy AllowAll \ --labels team=design
С помощью этих пространств имен теперь у вас есть среды для трех команд в вашей организации, что позволяет каждой команде быстро приступить к работе в среде, которая наилучшим образом соответствует их потребностям. Администраторы могут использовать вызовы Azure CLI для обновления пространств имен по мере изменения потребностей.
Просмотр управляемых пространств имен
По мере увеличения количества команд, с которыми вы занимаетесь, или по мере роста вашей организации, может и потребоваться просмотреть настроенные пространства имен.
Предположим, что вы хотите просмотреть пространства имен в кластере из предыдущего раздела , чтобы убедиться, что существует три пространства имен.
Используйте команду az aks namespace list для просмотра пространств имен.
az aks namespace list \
--cluster-name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--output table
Ваш результат должен быть похож на следующий пример результата:
Name ResourceGroup Location
------------------ --------------- ----------
$CLUSTER_NAME/$DESIGN_NAMESPACE $RESOURCE_GROUP <LOCATION>
$CLUSTER_NAME/$LEGAL_NAMESPACE $RESOURCE_GROUP <LOCATION>
$CLUSTER_NAME/$FINANCE_NAMESPACE $RESOURCE_GROUP <LOCATION>
Управление доступом к управляемым пространствам имен
Для определения того, какие пользователи имеют доступ к определенным действиям в пространстве имен, можно использовать роли Azure RBAC, назначенные для каждого пространства имен. При правильной настройке можно гарантировать, что пользователи имеют весь необходимый доступ в пространстве имен, при этом их доступ к другим пространствам имен или ресурсам на уровне кластера будет ограничен.
Дальнейшие шаги
- Узнайте, как создавать и использовать управляемые пространства имен в службе Azure Kubernetes (AKS).
- Узнайте о пространствах имен, управляемых несколькими кластерами , с помощью Azure Kubernetes Fleet Manager.