PodGroup v1alpha2

PodGroup представляє екземпляр виконання podʼів, згрупованих разом.

apiVersion: scheduling.k8s.io/v1alpha2

import "k8s.io/api/scheduling/v1alpha2"

PodGroup

PodGroup представляє екземпляр виконання podʼів, згрупованих разом. PodGroups створюються контролерами робочих навантажень (Job, LWS, JobSet тощо) з Workload.podGroupTemplates. Увімкнення API PodGroup керується прапорцем функції GenericWorkload.


PodGroupSpec

PodGroupSpec визначає бажаний стан PodGroup.


  • schedulingPolicy (PodGroupSchedulingPolicy), обовʼязково

    SchedulingPolicy визначає політику планування для цього екземпляра PodGroup. Контролери очікують, що це поле буде заповнене шляхом копіювання його з PodGroupTemplate. Це поле є незмінним.

    PodGroupSchedulingPolicy визначає конфігурацію планування для PodGroup. Має бути встановлено точно одну політику.

    • schedulingPolicy.basic (BasicSchedulingPolicy)

      Basic визначає, що podʼи в цій групі повинні плануватися з використанням стандартної поведінки планування Kubernetes.

      BasicSchedulingPolicy вказує, що слід використовувати стандартну поведінку планування Kubernetes.

    • schedulingPolicy.gang (GangSchedulingPolicy)

      Gang визначає, що podʼи в цій групі повинні плануватися з використанням семантики "все або нічого".

      GangSchedulingPolicy визначає параметри для групового планування.

      • schedulingPolicy.gang.minCount (int32), обовʼязково

        MinCount визначає мінімальну кількість podʼів, які повинні бути заплановані або запущені одночасно, щоб планувальник дозволив всю групу. Це повинно бути додатне ціле число.

  • disruptionMode (string)

    DisruptionMode визначає режим, у якому даний PodGroup може отримати розлад. Контролери очікують, що це поле буде заповнене шляхом копіювання його з PodGroupTemplate. Одне з Pod, PodGroup. Зазвичай — Pod, якщо не встановлено. Це поле є незмінним. Це поле доступне лише тоді, коли увімкнено функціональну можливість WorkloadAwarePreemption.

    Можливі значення enum:

    • "Pod" означає, що окремі podʼи можуть отримати розлад або бути передані незалежно. Це не залежить від точного набору podʼів, які наразі працюють у цьому PodGroup.
    • "PodGroup" означає, що вся PodGroup має отримати розлад чи випередження разом.
  • podGroupTemplateRef (PodGroupTemplateReference)

    PodGroupTemplateRef вказує на необов’язковий шаблон PodGroup у складі іншого об’єкта (наприклад, Workload), який було використано для створення PodGroup. Це поле є незмінним.

    PodGroupTemplateReference вказує на шаблон PodGroup, визначений у деякому об'єкті (наприклад, Workload). Має бути встановлено точно одне посилання.

    • podGroupTemplateRef.workload (WorkloadPodGroupTemplateReference)

      Workload вказує на PodGroupTemplate у складі обʼєкта Workload, який було використано для створення PodGroup.

      WorkloadPodGroupTemplateReference вказує на PodGroupTemplate у складі обʼєкта Workload.

      • podGroupTemplateRef.workload.podGroupTemplateName (string), обовʼязково

        PodGroupTemplateName визначає імʼя PodGroupTemplate у складі обʼєкта Workload.

      • podGroupTemplateRef.workload.workloadName (string), обовʼязково

        WorkloadName визначає імʼя обʼєкта Workload.

  • priority (int32)

    Priority є значенням пріоритету цієї групи podʼів. Різні системні компоненти використовують це поле для визначення пріоритету групи podʼів. Коли увімкнено контролер допуску пріоритету (Priority Admission Controller), він забороняє користувачам встановлювати це поле. Контролер допуску пріоритету заповнює це поле з PriorityClassName. Чим вище значення, тим вищий пріоритет. Це поле є незмінним. Це поле доступне лише тоді, коли увімкнено функціональну можливість WorkloadAwarePreemption.

  • priorityClassName (string)

    PriorityClassName визначає пріоритет, який слід враховувати при плануванні цієї групи podʼів. Контролери очікують, що це поле буде заповнене шляхом копіювання його з PodGroupTemplate. Інакше воно перевіряється та розвʼязується аналогічно до PriorityClassName в PodGroupTemplate (тобто, якщо пріоритет класу не вказано, контролер допуску може встановити його на стандартний глобальний пріоритет, якщо він існує. Інакше пріоритет групи podʼів буде нульовим). Це поле є незмінним. Це поле доступне лише тоді, коли увімкнено функціональну можливість WorkloadAwarePreemption.

  • resourceClaims ([]PodGroupResourceClaim)

    Patch strategies: retainKeys, обʼєднати за ключем name

    Map: унікальні значення за ключем name будуть збережені під час обʼєднання

    ResourceClaims визначає, які ResourceClaims можуть бути спільно використані серед Podʼів у групі. Podʼи використовують пристрої, виділені для заявок PodGroup, визначаючи заявку у власному Spec.ResourceClaims, яка точно відповідає заявці PodGroup. Заявка повинна мати однакове імʼя та посилатися на той самий ResourceClaim або ResourceClaimTemplate.

    Це поле є альфа-рівням і вимагає, щоб функціональна можливість DRAWorkloadResourceClaims була увімкнена.

    Це поле є незмінним.

    PodGroupResourceClaim посилається точно на один ResourceClaim, або безпосередньо, або шляхом вказівки ResourceClaimTemplate, який потім перетворюється на ResourceClaim для PodGroup.

    Воно додає імʼя, яке унікально ідентифікує ResourceClaim всередині PodGroup. Podʼи, які потребують доступу до ResourceClaim, визначають відповідне посилання у власному Spec.ResourceClaims. Заявка Pod повинна точно відповідати всім полям заявки PodGroup.

    • resourceClaims.name (string), обовʼязково

      Name унікально ідентифікує цю заявку на ресурс всередині PodGroup. Це повинно бути DNS_LABEL.

    • resourceClaims.resourceClaimName (string)

      ResourceClaimName є імʼям обʼєкта ResourceClaim у тому ж просторі імен, що й цей PodGroup. ResourceClaim буде зарезервовано для PodGroup замість його окремих podʼів.

      Необхідно вказати саме один із параметрів ResourceClaimName або ResourceClaimTemplateName.

    • resourceClaims.resourceClaimTemplateName (string)

      ResourceClaimTemplateName є імʼям обʼєкта ResourceClaimTemplate у тому ж просторі імен, що й цей PodGroup.

      Шаблон буде використаний для створення нового ResourceClaim, який буде привʼязаний до цієї PodGroup. Коли цей PodGroup буде видалено, ResourceClaim також буде видалено. Імʼя PodGroup та імʼя ресурсу разом із згенерованим компонентом будуть використані для формування унікального імені для ResourceClaim, яке буде записано в podgroup.status.resourceClaimStatuses.

      Це поле є незмінним, і після створення ResourceClaim панель управління не вноситиме жодних змін до відповідного ResourceClaim.

      Необхідно вказати саме один із параметрів ResourceClaimName або ResourceClaimTemplateName.

  • schedulingConstraints (PodGroupSchedulingConstraints)

    SchedulingConstraints визначає необовʼязкові обмеження планування (наприклад, топологію) для цієї PodGroup. Контролери очікують заповнення цього поля шляхом копіювання його з PodGroupTemplate. Це поле є незмінним. Це поле доступне лише тоді, коли увімкнено функціональну можливість TopologyAwareWorkloadScheduling.

    PodGroupSchedulingConstraints визначає обмеження планування (наприклад, топологію) для PodGroup.

    • schedulingConstraints.topology ([]TopologyConstraint)

      Atomic: буде замінено під час злиття

      Topology визначає обмеження топології для групи podʼів. Наразі можна вказати лише одне обмеження топології. Це може змінитися в майбутньому.

      TopologyConstraint визначає обмеження топології для PodGroup.

      • schedulingConstraints.topology.key (string), обовʼязково

        Key визначає ключ мітки вузла, що позначає домен топології. Усі поди у PodGroup повинні розміщуватися в одному й тому ж екземплярі домену. Різні PodGroup можуть розміщуватися в різних екземплярах домену, навіть якщо вони походять від одного й того ж PodGroupTemplate. Приклади: "topology.kubernetes.io/rack"

PodGroupStatus

PodGroupStatus представляє інформацію про стан групи podʼів.


  • conditions ([]Condition)

    Patch strategy: обʼєднання за ключем type

    Map: унікальні значення за ключем type будуть збережені під час злиття

    Conditions представляють останні спостереження за станом PodGroup.

    Відомі типи станів:

    • "PodGroupScheduled": Вказує, чи були задоволені вимоги до планування.
    • "DisruptionTarget": Вказує, чи PodGroup буде завершено через порушення, наприклад, через передчасне завершення.

    Відомі причини для стану PodGroupScheduled:

    • "Unschedulable": PodGroup не може бути заплановано через обмеження ресурсів, правила спорідненості/антиспорідненості або недостатню ємність для групи.
    • "SchedulerError": PodGroup не може бути заплановано через внутрішню помилку, яка сталася під час планування, наприклад через помилки розбору nodeAffinity.

    Відомі причини для стану DisruptionTarget:

    • "PreemptionByScheduler": PodGroup було передчасно завершено планувальником, щоб звільнити місце для PodGroup або Pod з вищим пріоритетом.

    Обмеження Condition містить деталі щодо одного аспекту поточного стану цього ресурсу API.

    • conditions.lastTransitionTime (Time), обовʼязково

      lastTransitionTime — це останній час, коли умова перейшла з одного стану в інший. Це має бути час, коли змінилася основна умова. Якщо це невідомо, можна використовувати час, коли змінилося поле API.

      Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.

    • conditions.message (string), обовʼязково

      message є зрозумілим для людини повідомленням, яке вказує деталі щодо переходу. Це може бути порожній рядок.

    • conditions.reason (string), обовʼязково

      reason містить програмний ідентифікатор, який вказує причину останнього переходу стану. Виробники конкретних типів станів можуть визначати очікувані значення та значення для цього поля, а також чи вважаються ці значення гарантованим API. Значення повинно бути рядком у CamelCase. Це поле не може бути порожнім.

    • conditions.status (string), обовʼязково

      status — статус стану, одне з True, False, Unknown.

    • conditions.type (string), обовʼязково

      type — тип стану в форматі CamelCase або у форматі foo.example.com/CamelCase.

    • conditions.observedGeneration (int64)

      observedGeneration представляє .metadata.generation, на основі якого було встановлен стан. Наприклад, якщо .metadata.generation наразі 12, але .status.conditions[x].observedGeneration дорівнює 9, стан застарів щодо поточного стану екземпляра.

  • resourceClaimStatuses ([]PodGroupResourceClaimStatus)

    Patch strategies: retainKeys, обʼєднання за ключем name

    Map: унікальні значення за ключем name будуть збережені під час злиття

    Status of resource claims.

    PodGroupResourceClaimStatus зберігається в PodGroupStatus для кожного PodGroupResourceClaim, який посилається на ResourceClaimTemplate. Він зберігає згенероване імʼя для відповідного ResourceClaim.

    • resourceClaimStatuses.name (string), обовʼязково

      Name унікально ідентифікує цей запит на ресурс всередині PodGroup. Значення повинно відповідати імені запису в podgroup.spec.resourceClaims, що означає, що рядок повинен бути DNS_LABEL.

    • resourceClaimStatuses.resourceClaimName (string)

      ResourceClaimName — це імʼя ResourceClaim, яке було згенеровано для PodGroup у просторі імен PodGroup. Якщо це поле не встановлено, то генерація ResourceClaim не була необхідною. У цьому випадку запис podgroup.spec.resourceClaims можна ігнорувати.

PodGroupList

PodGroupList містить список ресурсів PodGroup.


  • apiVersion: scheduling.k8s.io/v1alpha2

  • kind: PodGroupList

  • metadata (ListMeta)

    Стандартні метадані списку.

  • items ([]PodGroup), обовʼязково

    Items — це список PodGroups.

Operations


get отримати вказану PodGroup

HTTP Запит

GET /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name of the PodGroup

  • namespace (в шляху): string, обовʼязково

    namespace

  • pretty (в запиті): string

    pretty

Відповідь

200 (PodGroup): OK

401: Unauthorized

get отримати статус вказаної PodGroup

HTTP Запит

GET /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}/status

Параметри

  • name (в шляху): string, обовʼязково

    name — імʼя PodGroup

  • namespace (в шляху): string, обовʼязково

    namespace

  • pretty (в запиті): string

    pretty

Відповідь

200 (PodGroup): OK

401: Unauthorized

list перелік або перегляд обʼєктів типу PodGroup

HTTP Запит

GET /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups

Параметри

Відповідь

200 (PodGroupList): OK

401: Unauthorized

list перелік або перегляд обʼєктів типу PodGroup

HTTP Запит

GET /apis/scheduling.k8s.io/v1alpha2/podgroups

Параметри

Відповідь

200 (PodGroupList): OK

401: Unauthorized

create створення PodGroup

HTTP Запит

POST /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups

Параметри

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: PodGroup, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • pretty (в запиті): string

    pretty

Відповідь

200 (PodGroup): OK

201 (PodGroup): Created

202 (PodGroup): Accepted

401: Unauthorized

update заміна вказаної PodGroup

HTTP Запит

PUT /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name of the PodGroup

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: PodGroup, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • pretty (в запиті): string

    pretty

Відповідь

200 (PodGroup): OK

201 (PodGroup): Created

401: Unauthorized

update заміна статусу вказаної PodGroup

HTTP Запит

PUT /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}/status

Параметри

  • name (в шляху): string, обовʼязково

    name of the PodGroup

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: PodGroup, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • pretty (в запиті): string

    pretty

Відповідь

200 (PodGroup): OK

201 (PodGroup): Created

401: Unauthorized

patch часткове оновлення вказаної PodGroup

HTTP Запит

PATCH /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name — імʼя PodGroup

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: Patch, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • force (в запиті): boolean

    force

  • pretty (в запиті): string

    pretty

Відповідь

200 (PodGroup): OK

201 (PodGroup): Created

401: Unauthorized

patch часткове оновлення статусу вказаної PodGroup

HTTP Запит

PATCH /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}/status

Параметри

  • name (в шляху): string, обовʼязково

    name — імʼя PodGroup

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: Patch, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • force (в запиті): boolean

    force

  • pretty (в запиті): string

    pretty

Відповідь

200 (PodGroup): OK

201 (PodGroup): Created

401: Unauthorized

delete видалення PodGroup

HTTP Запит

DELETE /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}

Параметри

Відповідь

200 (Status): OK

202 (Status): Accepted

401: Unauthorized

deletecollection видалення колекції PodGroup

HTTP Запит

DELETE /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups

Параметри

Відповідь

200 (Status): OK

401: Unauthorized

Востаннє змінено May 05, 2026 at 3:37 PM PST: [uk] Ukrainian translation (all-in-one) (f7bdd3ee72)