Dynamic Resource Allocation (DRA) додає потужні можливості планування та управління пристроями. Оскільки компоненти DRA оновлюють статус ResourceClaim, адміністратори кластера повинні налаштувати авторизацію для цих оновлень з явним, мінімально необхідними RBAC.
Kubernetes v1.36 [beta](стандартно увімкнено)Починаючи з Kubernetes v1.36, оновлення статусу DRA використовують синтетичні субресурси і, в деяких випадках, спеціалізовані вузлово-орієнтовані дієслова.
Для оновлень статусу DRA, крім надання дозволів на update для субресурсу resourceclaims/status, адміністратори кластера повинні надавати дозволи на конкретні "синтетичні" субресурси на основі точних полів, які компонент потребує змінити. Це забезпечує принцип мінімальних привілеїв між планувальником, власними контролерами, та драйверами DRA.
Перевірки авторизації DRA поділяються на два синтетичні субресурси:
resourceclaims/bindingstatus.allocation та status.reservedFor.update та patch.resourceclaims/driverstatus.devices.При авторизації оновлень resourceclaims/driver використовуйте відповідний спеціалізований префікс дієслова:
associated-node:<verb> (наприклад, associated-node:update)arbitrary-node:<verb> (наприклад, arbitrary-node:patch)apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: dra-binding-updater
rules:
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/status"]
verbs: ["get", "patch", "update"]
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/binding"]
verbs: ["patch", "update"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: dra-node-driver-status-updater
rules:
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/status"]
verbs: ["get", "patch", "update"]
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/driver"]
verbs: ["associated-node:patch", "associated-node:update"]
resourceNames: ["dra.example.com"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: dra-multinode-status-updater
rules:
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/status"]
verbs: ["get", "patch", "update"]
- apiGroups: ["resource.k8s.io"]
resources: ["resourceclaims/driver"]
verbs: ["arbitrary-node:patch", "arbitrary-node:update"]
resourceNames: ["dra.example.com"]
Щоб застосувати ці шаблони в працюючому кластері, дивіться Посилення безпеки динамічного розподілу ресурсів у вашому кластері.