Поделиться через


Управление доступом на основе ролей Kubernetes на устройстве GPU Azure Stack Edge Pro

ОБЛАСТЬ ПРИМЕНЕНИЯ: Да для SKU GPU ProAzure Stack Edge Pro — GPUДа для SKU Pro 2Azure Stack Edge Pro 2Да для SKU R ProAzure Stack Edge Pro RДа для номера SKU Mini RAzure Stack Edge Mini R

На устройстве Azure Stack Edge Pro при настройке вычислительной роли создается кластер Kubernetes. Вы можете использовать управление доступом на основе ролей Kubernetes (Kubernetes RBAC) для ограничения доступа к ресурсам кластера на устройстве.

В этой статье представлен обзор системы RBAC Kubernetes, предоставляемой Kubernetes, и способ реализации Kubernetes RBAC на устройстве Azure Stack Edge Pro.

Kubernetes RBAC

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

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

Типы пространств имен

Ресурсы Kubernetes, такие как pod и развертывания, логически сгруппированы в пространство имен. Эти группировки позволяют логически разделить кластер Kubernetes и ограничить доступ к созданию, просмотру или управлению ресурсами. Пользователи смогут взаимодействовать только с ресурсами из назначенных им пространств имен.

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

Устройство Azure Stack Edge Pro имеет следующие пространства имен:

  • Пространство имен системы — это пространство имен , в котором существуют основные ресурсы, такие как сетевые функции, такие как DNS и прокси-сервер, или панель мониторинга Kubernetes. Обычно вам не нужно развертывать приложения в этом пространстве имен. Используйте это пространство имен для отладки любых проблем с кластером Kubernetes.

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

    • kube-system
    • metallb-system
    • dbe-namespace
    • default
    • панель мониторинга kubernetes
    • kube-node-lease
    • kube-public

    Не используйте зарезервированные имена для создаваемых пространств имен пользователей.

  • Пространство имен пользователя — это пространства имен, которые можно создать с помощью kubectl или через интерфейс PowerShell устройства для локального развертывания приложений.

  • Пространство имен IoT Edge — вы подключаетесь к этому iotedge пространству имен для управления приложениями, развернутыми с помощью IoT Edge.

  • Пространство имен Azure Arc— вы подключаетесь к этому azure-arc пространству имен для управления приложениями, развернутыми с помощью Azure Arc. С помощью Azure Arc можно также развертывать приложения в других пространствах имен пользователей.

Пространства имен и пользователи

В реальном мире важно разделить кластер на несколько пространств имен.

  • Несколько пользователей: если у вас несколько пользователей, то несколько пространств имен позволяют пользователям развертывать свои приложения и службы в определенных пространствах имен в изоляции друг от друга.
  • Один пользователь: даже если один пользователь, несколько пространств имен позволяют запускать несколько версий приложений в одном кластере Kubernetes.

Роли и RoleBindings

Kubernetes имеет концепцию привязки ролей и ролей, которая позволяет предоставлять разрешения пользователям или ресурсам на уровне пространства имен и на уровне кластера.

  • Роли. Вы можете определить разрешения для пользователей в качестве роли , а затем использовать роли для предоставления разрешений в пространстве имен.
  • RoleBindings: после определения ролей можно использовать RoleBindings для назначения ролей для заданного пространства имен.

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

Kubernetes RBAC в Azure Stack Edge Pro

В текущей реализации Kubernetes RBAC Azure Stack Edge Pro позволяет выполнять следующие действия из ограниченного пространства выполнения PowerShell:

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

Устройство Azure Stack Edge Pro имеет несколько системных пространств имен, и вы можете создавать пространства имен пользователей с kubeconfig файлами для доступа к этим пространствам имен. Пользователи имеют полный контроль над этими пространствами имен и могут создавать или изменять пользователей или предоставлять пользователям доступ. Только администратор кластера имеет полный доступ к системным пространствам имен и ресурсам на уровне кластера. Доступ aseuser только для чтения к системным пространствам имен.

Ниже приведена схема, на которую изображена реализация RBAC Kubernetes на устройстве Azure Stack Edge Pro.

Kubernetes RBAC на устройстве Azure Stack Edge Pro

На этой схеме Алиса, Боб и Чак имеют доступ только к назначенным пространствам имен пользователей, которые в данном случае — ns1ns2и ns3 соответственно. В этих пространствах имен у них есть доступ администратора. Администратор кластера с другой стороны имеет доступ администратора к системным пространствам имен и ресурсам на уровне кластера.

В качестве пользователя можно создавать пространства имен и пользователей, назначать пользователей пространствам имен или скачивать kubeconfig файлы. Подробные пошаговые инструкции см. в разделе "Доступ к кластеру Kubernetes" через kuebctl в Azure Stack Edge Pro.

При работе с пространствами имен и пользователями на устройствах Azure Stack Edge Pro применяются следующие предостережения:

  • Вы не можете выполнять такие операции, как создание пользователей, предоставление или отмена доступа к пространству имен для любого из системных пространств имен. Примеры системных пространств имен: kube-system, metallb-system, kubernetes-dashboard, default, kube-node-lease. kube-public Системные пространства имен также включают пространства имен, зарезервированные для типов развертывания, таких как iotedge (пространство имен IoT Edge) и azure-arc (пространство имен Azure Arc).
  • Вы можете создавать пространства имен пользователей и в этих пространствах имен создавать дополнительных пользователей и предоставлять или отменять доступ к пространству имен этим пользователям.
  • Вы не можете создавать пространства имен с именами, идентичными именам для любого системного пространства имен. Имена системных пространств имен зарезервированы.
  • Вы не можете создавать пространства имен пользователей с именами, которые уже используются другими пространствами имен пользователей. Например, если у вас есть созданное test-ns пространство имен, невозможно создать другое test-ns пространство имен.
  • Вы не можете создавать пользователей с именами, которые уже зарезервированы. Например, aseuser является зарезервированным пользователем и не может использоваться.

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

Сведения о том, как создать пользователя, создать пространство имен и предоставить пользователю доступ к пространству имен, см. в статье Access a Kubernetes cluster via kubectl.