# Динамічне виділення ресурсів

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->















            

            
              
            <div class="feature-state-notice feature-stable" title="Функціональна можливість: DynamicResourceAllocation">
              <span class="feature-state-name">Стан функціоналу:</span>
              <span class="feature-state-details">
               <span class='feature-state-stage'>Stable</span> починаючи з Kubernetes v1.35
               </span>
            </div>

            
            <div class="feature-stable">
              
              <details>
              <summary>Докладніше про цей функціонал</summary>
              <p>Це стабільна функція в Kubernetes, яка загальнодоступна починаючи з версії v1.35. Вперше вона зʼявилась у випуску v1.30. Ви більше не можете вимкнути або відмовитися від цієї функції чи поведінки (це заблоковано); якщо ви явно встановите значення для повʼязаної функціональної можливості <tt>DynamicResourceAllocation</tt>, Kubernetes проігнорує це, але не повідомить про помилку.</p></p>
              </details>

              
              </div>


Цей розділ знайомить з _динамічним виділенням ресурсів (Dynamic Resource Allocation, DRA)_ у Kubernetes.

<p><p>DRA — функція Kubernetes, яка дозволяє вам запитувати ресурси та ділитися ними з іншими Podʼами. Ці ресурси часто приєднуються до <a class='glossary-tooltip' title='Будь-який ресурс, який безпосередньо або опосередковано підключений до вузлів вашого кластера, наприклад, GPU або інші плати.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/reference/glossary/?all=true#term-device' target='_blank' aria-label='пристроїв'>пристроїв</a>, наприклад, до апаратних прискорювачів.</p></p>
<p>З DRA драйвери пристроїв і адміністратори кластерів визначають <em>класи</em> пристроїв, які доступні для <em>заявки</em> в робочих навантаженнях. Kubernetes виділяє відповідні пристрої для конкретних заявок і розміщує відповідні Podʼи на вузлах, які можуть отримати доступ до виділених пристроїв.</p>

Виділення ресурсів за допомогою DRA схоже на [динамічне надання томів](/docs/concepts/storage/dynamic-provisioning/), в якому ви використовуєте PersistentVolumeClaims, щоб _запитати_ ємність сховища від класів сховища і запитувати заявлену ємність для використання у ваших Podʼах.

<!-- body -->

### Переваги DRA {#dra-benefits}

DRA надає гнучкий спосіб категоризації, запиту та використання пристроїв у вашому кластері. Використання DRA має такі переваги:

* **Гнучке фільтрування пристроїв**: використовуйте загальну мову виразів (CEL) для виконання детального фільтрування за конкретними атрибутами пристроїв.
* **Спільне використання пристроїв**: діліться одним і тим же ресурсом між кількома контейнерами або Podʼами, посилаючись на відповідну заявку на ресурс.
* **Конфігурація пристроїв**: прикріплюйте специфічні для постачальника конфігурації пристроїв до вашої заявки на ресурс, що дозволяє конфігурувати пристрої для кожного робочого навантаження окремо, а не для кожного вузла, як це відбувається сьогодні.
* **Централізована категоризація пристроїв**: драйвери пристроїв і адміністратори кластерів можуть використовувати класи пристроїв, щоб надати операторам застосунків категорії апаратного забезпечення, які оптимізовані для різних випадків використання. Наприклад, ви можете створити клас пристроїв, оптимізований за вартістю для загальних робочих навантажень, і клас пристроїв високої продуктивності для критичних завдань.
* **Спрощені запити Podʼів**: за допомогою DRA операторам застосунків не потрібно вказувати кількість пристроїв у запитах ресурсів Podʼа. Замість цього Pod посилається на заявку на ресурс, а конфігурація пристроїв у цій заявці застосовується до Podʼа.

Ці переваги забезпечують значні поліпшення в робочому процесі виділення пристроїв у порівнянні з [втулками пристроїв](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/), які вимагають запитів пристроїв для кожного контейнера, не підтримують спільне використання пристроїв і не підтримують фільтрацію пристроїв на основі виразів.

### Типи користувачів DRA {#dra-user-types}

Процес використання DRA для виділення пристроїв включає такі типи користувачів:

* **Власник пристрою**: відповідає за пристрої. Власники пристроїв можуть бути комерційними постачальниками, оператором кластера або іншою сутністю. Щоб використовувати DRA, пристрої повинні мати драйвери, сумісні з DRA, які виконують такі дії:

  * Створюють ResourceSlices, які надають Kubernetes інформацію про вузли та ресурси.
  * Оновлюють ResourceSlices, коли змінюється ємність ресурсів у кластері.
  * Налаштовують пристрої відповідно до заявки та приєднують їх до контейнерів через Container Device Interface (CDI).
  * За бажанням створюють DeviceClasses, які оператори робочих навантажень можуть використовувати для заявки на пристрої.

* **Адміністратор кластера**: відповідає за налаштування кластерів і вузлів, підключення пристроїв, установку драйверів та подібні завдання. Щоб використовувати DRA, адміністратори кластерів виконують такі дії:

  * Підключають пристрої до вузлів.
  * Встановлюють драйвери пристроїв, які підтримують DRA.
  * За бажанням створюють DeviceClasses, які оператори робочих навантажень можуть використовувати для заявки на пристрої.

* **Оператор робочих навантажень**: відповідає за розгортання та управління робочими навантаженнями в кластері. Щоб використовувати DRA для виділення пристроїв для Podʼів, оператори робочих навантажень виконують такі дії:

  * Створюють ResourceClaims або ResourceClaimTemplates, щоб запитати конкретні конфігурації в межах DeviceClasses.
  * Розгортають робочі навантаження, які використовують конкретні ResourceClaims або ResourceClaimTemplates.

## Обмеження {#limitations}

* Планувальник Kubernetes не підтримує [витіснення](/docs/concepts/scheduling-eviction/pod-priority-preemption/) для ресурсів DRA. Це означає, що наявний Pod, який працює на вузлі і використовує ресурси DRA, не може бути витіснений Podʼом з вищим пріоритетом, який також потребує ресурси DRA. Pod з високим пріоритетом залишатиметься в стані очікування, поки пристрій не стане доступним, що відбувається, коли конфліктуючий Pod завершує роботу або видаляється вручну.

## Що далі

* [Налаштування DRA у кластері](/docs/tasks/configure-pod-container/assign-resources/set-up-dra-cluster/)
* [Виділення пристроїв для робочих навантажень за допомогою DRA](/docs/tasks/configure-pod-container/assign-resources/allocate-devices-dra/)
* [Доступ до метаданих пристроїв DRA](/docs/tasks/configure-pod-container/assign-resources/access-dra-device-metadata/)
* Для отримання додаткової інформації про дизайн дивіться KEP: [Dynamic Resource Allocation with Structured Parameters](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4381-dra-structured-parameters).

---

Section pages:

- [Обʼєкти API DRA](/uk/docs/concepts/resource-management/dynamic-resource-allocation/dra-api/)
- [Як працює DRA](/uk/docs/concepts/resource-management/dynamic-resource-allocation/how-dra-works/)
- [Спостережуваність динамічних ресурсів](/uk/docs/concepts/resource-management/dynamic-resource-allocation/dra-observability/)
- [Функції DRA](/uk/docs/concepts/resource-management/dynamic-resource-allocation/dra-features/)
- [Позначки Taint та Toleration пристроїв](/uk/docs/concepts/resource-management/dynamic-resource-allocation/device-taints/)
