Рекомендации по изоляции кластера в службах Azure Kubernetes (AKS)Best practices for cluster isolation in Azure Kubernetes Service (AKS)

При управлении кластерами в Cлужбе Azure Kubernetes (AKS) часто возникает необходимость изолировать команды и рабочие нагрузки.As you manage clusters in Azure Kubernetes Service (AKS), you often need to isolate teams and workloads. AKS позволяет гибко настраивать конфигурацию запуска кластеров с несколькими клиентами и изолировать ресурсы.AKS provides flexibility in how you can run multi-tenant clusters and isolate resources. Чтобы добиться максимальной эффективности Kubernetes, следует изучить и применить эти возможности мультитенантности и изоляции.To maximize your investment in Kubernetes, these multi-tenancy and isolation features should be understood and implemented.

Это статья содержит рекомендации по изоляции для операторов кластера.This best practices article focuses on isolation for cluster operators. Вы узнаете, как выполнять следующие задачи:In this article, you learn how to:

  • планирование кластеров с несколькими клиентами и разделение ресурсов;Plan for multi-tenant clusters and separation of resources
  • использование логической или физической изоляции в кластерах AKS;Use logical or physical isolation in your AKS clusters

проектирование кластеров с учетом мультитенантности.Design clusters for multi-tenancy

Kubernetes предоставляет возможности логической изоляции команд и рабочих нагрузок в одном кластере.Kubernetes provides features that let you logically isolate teams and workloads in the same cluster. Задача — предоставить минимально необходимый набор привилегий для использования ресурсов, которые нужны каждой команде.The goal should be to provide the least number of privileges, scoped to the resources each team needs. Пространство имен в Kubernetes создает границу логической изоляции.A Namespace in Kubernetes creates a logical isolation boundary. Дополнительные функции Kubernetes и рекомендации по изоляции и мультитенантность включают в себя следующие области:Additional Kubernetes features and considerations for isolation and multi-tenancy include the following areas:

  • Планирование ограничивает использование основных возможностей. Сюда относятся квоты ресурсов и затраты, связанные с неработоспособностью групп pod.Scheduling includes the use of basic features such as resource quotas and pod disruption budgets. Дополнительные сведения об этих функциях см. в перечне советов и рекомендаций по базовым функциям планировщика в AKS.For more information about these features, see Best practices for basic scheduler features in AKS.
  • Сеть позволяет использовать политики сети для управления потоком входящего и исходящего трафика для групп pod.Networking includes the use of network policies to control the flow of traffic in and out of pods.
  • Проверка подлинности и авторизация включает пользователя управления доступом на основе ролей (RBAC) и интеграции Azure Active Directory (AD), удостоверения групп pod и секреты в Azure Key Vault.Authentication and authorization include the user of role-based access control (RBAC) and Azure Active Directory (AD) integration, pod identities, and secrets in Azure Key Vault. Дополнительные сведения об этих функциях см. в перечне советов и рекомендаций по аутентификации и авторизации в AKS.For more information about these features, see Best practices for authentication and authorization in AKS.
  • Контейнеры включают в себя надстройку политики Azure для AKS, обеспечивающую безопасность Pod, использование контекстов безопасности Pod и сканирование как образов, так и среды выполнения для уязвимостей.Containers includes the Azure Policy Add-on for AKS to enforce pod security, the use of pod security contexts, and scanning both images and the runtime for vulnerabilities. Также они включают использование App Armor или Seccomp (Secure Computing) для ограничения доступа контейнера к базовому узлу.Also involves using App Armor or Seccomp (Secure Computing) to restrict container access to the underlying node.

Логическая изоляция кластеровLogically isolate clusters

Советы и рекомендации используйте логическую изоляцию для разделения команд и проектов.Best practice guidance - Use logical isolation to separate teams and projects. Старайтесь сократить число физических кластеров AKS, которые вы развертываете для изоляции команд и приложений.Try to minimize the number of physical AKS clusters you deploy to isolate teams or applications.

Логическая изоляция позволяет использовать один кластер AKS для нескольких рабочих нагрузок, групп или сред.With logical isolation, a single AKS cluster can be used for multiple workloads, teams, or environments. Пространства имен Kubernetes образуют границу логической изоляции для рабочих нагрузок и ресурсов.Kubernetes Namespaces form the logical isolation boundary for workloads and resources.

Логическая изоляция кластера Kubernetes в AKS

Логическое разделение кластеров обычно обеспечивает более высокую плотность групп pod, чем физически изолированные кластеры.Logical separation of clusters usually provides a higher pod density than physically isolated clusters. В этом варианте меньший объем вычислительной мощности простаивает в кластере.There's less excess compute capacity that sits idle in the cluster. Используя средство автомасштабирования кластера Kubernetes, вы можете масштабировать число узлов в соответствии с текущими требованиями.When combined with the Kubernetes cluster autoscaler, you can scale the number of nodes up or down to meet demands. Этот подход к автоматическому масштабированию считается оптимальным, так как он позволяет выполнять только строго необходимое число узлов и минимизировать затраты.This best practice approach to autoscaling lets you run only the number of nodes required and minimizes costs.

Среды Kubernetes в AKS или в другой службе сейчас не полностью безопасны для использования в неблагоприятных мультитенантных средах.Kubernetes environments, in AKS or elsewhere, aren't completely safe for hostile multi-tenant usage. В среде с несколькими клиентами несколько клиентов работают в общей инфраструктуре.In a multi-tenant environment multiple tenants are working on a common, shared infrastructure. В результате, если все клиенты не могут быть доверенными, необходимо выполнить дополнительное планирование, чтобы избежать влияния одного клиента на безопасность и обслуживание другого.As a result if all tenants cannot be trusted, you need to do additional planning to avoid one tenant impacting the security and service of another. Дополнительные функции безопасности, такие как Политика безопасности Pod и более детализированное управление доступом на основе РОЛЕЙ (RBAC) для узлов, делают эксплойты более сложными.Additional security features such as Pod Security Policy and more fine-grained role-based access control (RBAC) for nodes make exploits more difficult. Однако для обеспечения полноценной безопасности при выполнении неблагоприятных мультитенантных рабочих нагрузок гипервизор является единственным уровнем безопасности, которому следует доверять.However, for true security when running hostile multi-tenant workloads, a hypervisor is the only level of security that you should trust. Домен безопасности для Kubernetes становится целым кластером, а не отдельным узлом.The security domain for Kubernetes becomes the entire cluster, not an individual node. Для таких типов неблагоприятных мультитенантных рабочих нагрузок следует использовать физически изолированные кластеры.For these types of hostile multi-tenant workloads, you should use physically isolated clusters.

Физическая изоляция кластеровPhysically isolate clusters

Советы и рекомендации — старайтесь как можно меньше использовать физическую изоляцию для отдельных групп или развертываний приложений.Best practice guidance - Minimize the use of physical isolation for each separate team or application deployment. Всегда используйте логическую изоляцию, которая описана в предыдущем разделе.Instead, use logical isolation, as discussed in the previous section.

Изоляция кластеров достаточно часто выполняется путем физического разделения кластеров AKS.A common approach to cluster isolation is to use physically separate AKS clusters. При такой модели изоляции каждая команда или рабочая нагрузка получает собственный кластер AKS.In this isolation model, teams or workloads are assigned their own AKS cluster. Этот подход к изоляции рабочих нагрузок или команд кажется на первый взгляд самым простым, но он сопряжен со значительными административными и финансовыми издержками.This approach often looks like the easiest way to isolate workloads or teams, but adds additional management and financial overhead. Вам придется поддерживать несколько раздельных кластеров, а также отдельно предоставлять для них доступ и назначать разрешения.You now have to maintain these multiple clusters, and have to individually provide access and assign permissions. Кроме того, вы будете оплачивать все отдельные узлы.You're also billed for all the individual nodes.

Физическая изоляция отдельных кластеров Kubernetes в AKS

Физически разделенные кластеры обычно имеют низкую плотность групп pod.Physically separate clusters usually have a low pod density. Так как каждой команде или рабочей нагрузке предоставляется собственный кластер AKS, все эти кластеры обычно получают избыточные вычислительные ресурсы.As each team or workload has their own AKS cluster, the cluster is often over-provisioned with compute resources. Часто на этих узлах планируется небольшое количество модулей Pod.Often, a small number of pods are scheduled on those nodes. Неиспользуемое пространство на узлах недоступно для приложений или служб, над которыми работают другие команды.Unused capacity on the nodes can't be used for applications or services in development by other teams. Лишние ресурсы дополнительно повышают затраты на систему с физически разделенными кластерами.These excess resources contribute to the additional costs in physically separate clusters.

Следующие шагиNext steps

Эта статья посвящена изоляции кластера.This article focused on cluster isolation. Дополнительную информацию об операциях кластера в AKS см. в рекомендациях на такие темы:For more information about cluster operations in AKS, see the following best practices: