RuntimeClass
apiVersion: node.k8s.io/v1
import "k8s.io/api/node/v1"
RuntimeClass
RuntimeClass визначає клас середовища виконання контейнерів, підтримуваних у кластері. RuntimeClass використовується для визначення, яке середовище виконання контейнерів використовується для запуску всіх контейнерів у Podʼі. RuntimeClass визначаються вручну користувачем або провайдером кластера і посилаються в PodSpec. Kubelet відповідає за розвʼязання посилання RuntimeClassName перед запуском Podʼа. Для отримання додаткової інформації дивіться: https://kubernetes.io/docs/concepts/containers/runtime-class/
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata (ObjectMeta)
Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
handler (string), обовʼязково
handler визначає базове середовище виконання та конфігурацію, яку реалізація CRI буде використовувати для обробки Podʼів цього класу. Можливі значення специфічні для конфігурації вузла та CRI. Припускається, що всі обробники доступні на кожному вузлі, і обробники з однаковими назвами еквівалентні на кожному вузлі. Наприклад, обробник з назвою "runc" може вказувати, що для запуску контейнерів у Podʼі буде використовуватися середовище виконання runc OCI (з використанням нативних Linux контейнерів). Handler повинен бути у нижньому регістрі, відповідати вимогам мітки DNS (RFC 1123) і бути незмінним.
overhead (Overhead)
overhead представляє накладні витрати ресурсів, повʼязані з запуском Podʼа для даного RuntimeClass. Для отримання додаткової інформації дивіться https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/
Структура Overhead представляє накладні витрати ресурсів, повʼязані з запуском Podʼа.
overhead.podFixed (map[string]Quantity)
podFixed представляє фіксовані накладні витрати ресурсів, повʼязані з запуском Podʼа.
scheduling (Scheduling)
scheduling містить обмеження планування, щоб забезпечити розміщення Podʼів, які працюють з цим RuntimeClass, на вузлах, які його підтримують. Якщо scheduling дорівнює nil, передбачається, що цей RuntimeClass підтримується всіма вузлами.
Scheduling визначає обмеження планування для вузлів, які підтримують RuntimeClass.
scheduling.nodeSelector (map[string]string)
nodeSelector перераховує мітки, які повинні бути присутніми на вузлах, що підтримують цей RuntimeClass. Podʼи, що використовують цей RuntimeClass, можуть бути розміщені тільки на вузлах, що відповідають цьому селектору. Селектор вузла RuntimeClass обʼєднується з наявним селектором вузла Podʼа. Будь-які конфлікти призведуть до відхилення Podʼа на етапі допуску.
scheduling.tolerations ([]Toleration)
Atomic: буде замінено під час злиття
tolerations додаються (за винятком дублікатів) до Podʼів, що працюють з цим RuntimeClass під час допуску, ефективно обʼєднуючи набір вузлів, які Pod та RuntimeClass можуть толерувати.
Pod, до якого привʼязаний цей Toleration, толерує будь-який taint, що відповідає трійці <key,value,effect> за допомогою оператора порівняння
. scheduling.tolerations.key (string)
Key — це ключ taint, до якого застосовується toleration. Порожній ключ означає відповідність всім ключам taint. Якщо ключ порожній, оператор повинен бути Exists; ця комбінація означає відповідність усім значенням та всім ключам.
scheduling.tolerations.operator (string)
Operator представляє відношення ключа до значення. Допустимі оператори: Exists і Equal. Стандартне значення — Equal. Exists еквівалентно шаблону для значення, так що Pod може толерувати всі taints певної категорії.
scheduling.tolerations.value (string)
Value — це значення taint, з яким збігається toleration. Якщо оператор Exists, значення повинно бути порожнім, інакше — це просто звичайний рядок.
scheduling.tolerations.effect (string)
Effect вказує ефект taint для порівняння. Порожній означає відповідність всім ефектам taint. Якщо вказано, допустимі значення — NoSchedule, PreferNoSchedule та NoExecute.
scheduling.tolerations.tolerationSeconds (int64)
TolerationSeconds представляє період часу, протягом якого toleration (який повинен мати ефект NoExecute, інакше це поле ігнорується) толерує taint. Стандартне значення — не встановлено, що означає толерування taint назавжди (не виселяти). Нульові та відʼємні значення будуть розглядатися системою як 0 (негайне виселення).
RuntimeClassList
RuntimeClassList — це список обʼєктів RuntimeClass.
apiVersion: node.k8s.io/v1
kind: RuntimeClassList
metadata (ListMeta)
Стандартні метадані списку. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]RuntimeClass), обовʼязково
items — це список обʼєктів схеми.
Операції
get
отримати вказаний RuntimeClass
HTTP запит
GET /apis/node.k8s.io/v1/runtimeclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя RuntimeClass
pretty (в запиті): string
Відповідь
200 (RuntimeClass): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу RuntimeClass
HTTP запит
GET /apis/node.k8s.io/v1/runtimeclasses
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (RuntimeClassList): OK
401: Unauthorized
create
створення RuntimeClass
HTTP запит
POST /apis/node.k8s.io/v1/runtimeclasses
Параметри
body: RuntimeClass, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (RuntimeClass): OK
201 (RuntimeClass): Created
202 (RuntimeClass): Accepted
401: Unauthorized
update
заміна вказаного RuntimeClass
HTTP запит
PUT /apis/node.k8s.io/v1/runtimeclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя RuntimeClass
body: RuntimeClass, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (RuntimeClass): OK
201 (RuntimeClass): Created
401: Unauthorized
patch
часткове оновлення вказаного RuntimeClass
HTTP запит
PATCH /apis/node.k8s.io/v1/runtimeclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя RuntimeClass
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (RuntimeClass): OK
201 (RuntimeClass): Created
401: Unauthorized
delete
видалення RuntimeClass
HTTP запит
DELETE /apis/node.k8s.io/v1/runtimeclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя RuntimeClass
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
видалення колекції RuntimeClass
HTTP запит
DELETE /apis/node.k8s.io/v1/runtimeclasses
Параметри
body: DeleteOptions
continue (в запиті): string
dryRun (в запиті): string
fieldSelector (в запиті): string
gracePeriodSeconds (в запиті): integer
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
Відповідь
200 (Status): OK
401: Unauthorized