Node
apiVersion: v1
import "k8s.io/api/core/v1"
Node
Node є робочим вузлом в Kubernetes. Кожен вузол буде мати унікальний ідентифікатор у кеші (тобто в etcd).
apiVersion: v1
kind: Node
metadata (ObjectMeta)
Стандартні метадані об’єкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (NodeSpec)
Spec визначає поведінку вузла. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
status (NodeStatus)
Останній за часом спостереження статус вузла. Заповнюється системою. Тільки для читання. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
NodeSpec
NodeSpec описує атрибути, з якими створюється вузол.
configSource (NodeConfigSource)
Застаріло: Раніше використовувалося для вказівки джерела конфігурації вузла для функції DynamicKubeletConfig. Цю функцію вилучено.
NodeConfigSource вказує джерело конфігурації вузла. Тільки одне підполе (без урахування метаданих) має бути не нульовим. Цей API є застарілим з версії 1.22
configSource.configMap (ConfigMapNodeConfigSource)
ConfigMap є посиланням на ConfigMap вузла.
ConfigMapNodeConfigSource містить інформацію для посилання на ConfigMap як джерело конфігурації для вузла. Цей API є застарілим з версії 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration
configSource.configMap.kubeletConfigKey (string), обовʼязково
KubeletConfigKey визначає, який ключ посилання ConfigMap відповідає структурі KubeletConfiguration. Це поле є обовʼязковим у всіх випадках.
configSource.configMap.name (string), обовʼязково
Name — metadata.name посилання ConfigMap. Це поле є обовʼязковим у всіх випадках.
configSource.configMap.namespace (string), обовʼязково
Namespace — metadata.namespace посилання ConfigMap. Це поле є обовʼязковим у всіх випадках.
configSource.configMap.resourceVersion (string)
ResourceVersion — metadata.ResourceVersion посилання ConfigMap. Це поле заборонено в Node.Spec, і обовʼязкове в Node.Status.
configSource.configMap.uid (string)
UID є metadata.UID посилання ConfigMap. Це поле заборонено в Node.Spec, і обовʼязково в Node.Status.
externalID (string)
Застаріло. Не всі kubelets встановлюватимуть це поле. Видаліть поле після версії 1.13. див.: https://issues.k8s.io/61966
podCIDR (string)
PodCIDR представляє діапазон IP-адрес Podʼів, призначених вузлу.
podCIDRs ([]string)
Set: унікальні значення будуть збережені під час злиття
podCIDRs представляє діапазони IP-адрес, призначених вузлу для використання Podʼами на цьому вузлі. Якщо це поле вказане, перший запис повинен відповідати полю podCIDR. Воно може містити не більше одного значення для кожного з IPv4 та IPv6.
providerID (string)
Ідентифікатор вузла, призначений постачальником хмарних послуг у форматі: <ProviderName>://<ProviderSpecificNodeID>
taints ([]Taint)
Atomic: буде замінено під час злиття
Якщо вказано, задає taints вузла.
Вузол, до якого прив’язано цей Taint, має "ефект" на будь-який Pod, який не толерує Taint.
taints.effect (string), обовʼязково
Обовʼязково. Ефект taint на Podʼи, які не толерують taint. Допустимі ефекти: NoSchedule, PreferNoSchedule і NoExecute.
taints.key (string), обовʼязково
Обовʼязково. Ключ taint, який буде застосовано до вузла.
taints.timeAdded (Time)
TimeAdded представляє час, коли taint було додано. Записується тільки для taint NoExecute.
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
taints.value (string)
Значення taint, що відповідає ключу taint.
unschedulable (boolean)
Unschedulable контролює можливість планування нових Podʼів на вузлі. Стандартно вузол є доступним для планування. Докладніше: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration
NodeStatus
NodeStatus — це інформація про поточний статус вузла.
addresses ([]NodeAddress)
Patch strategy: merge on key
type
Map: унікальні значення ключа type будуть збережені під час злиття
Список адрес, доступних вузлу. Запитується у постачальника хмарних послуг, якщо доступно. Докладніше: https://kubernetes.io/docs/concepts/nodes/node/#addresses Примітка: Це поле визначено як доступне для злиття, але ключ злиття не є достатньо унікальним, що може призвести до пошкодження даних при злитті. Абоненти повинні використовувати патч для повної заміни. Див. приклад на https://pr.k8s.io/79391. Споживачі повинні припускати, що адреси можуть змінюватися протягом усього життя вузла. Однак є деякі винятки, коли це може бути неможливо, наприклад, Podʼи, які наслідують адресу вузла у своєму статусі, або споживачі API (status.hostIP).
NodeAddress містить інформацію про адресу вузла.
addresses.address (string), обовʼязково
Адреса вузла.
addresses.type (string), обовʼязково
Тип адреси вузла, один із Hostname, ExternalIP або InternalIP.
allocatable (map[string]Quantity)
Allocatable представляє ресурси вузла, доступні для планування. Стандартне значення — Capacity.
capacity (map[string]Quantity)
Capacity представляє загальні ресурси вузла. Докладніше: https://kubernetes.io/docs/reference/node/node-status/#capacity
conditions ([]NodeCondition)
Patch strategy: merge on key
type
Map: унікальні значення ключа type будуть збережені під час злиття
Conditions — це масив поточних спостережуваних станів вузла. Докладніше: https://kubernetes.io/docs/concepts/nodes/node/#condition
NodeCondition містить інформацію про стан вузла.
conditions.status (string), обовʼязково
Статус стану, один із True, False, Unknown.
conditions.type (string), обовʼязково
Тип стану вузла.
conditions.lastHeartbeatTime (Time)
Останній час отримання оновлення про певний стан.
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
conditions.lastTransitionTime (Time)
Останній час переходу стану від одного статусу до іншого.
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
conditions.message (string)
Повідомлення, зрозуміле людині, що вказує на деталі останнього переходу.
conditions.reason (string)
(коротко) причина останнього переходу стану.
config (NodeConfigStatus)
Статус конфігурації, призначеної вузлу через функцію динамічної конфігурації Kubelet.
NodeConfigStatus описує статус конфігурації, призначеної Node.Spec.ConfigSource.
config.active (NodeConfigSource)
Active повідомляє про контрольовану конфігурацію, яку вузол активно використовує. Active представляє або поточну версію призначеної конфігурації, або поточну останню відому правильну конфігурацію, залежно від того, чи виникає помилка при спробі використати призначену конфігурацію.
NodeConfigSource вказує джерело конфігурації вузла. Тільки одне підполе (без урахування метаданих), має бути не нульовим. Цей API є застарілим з версії 1.22
config.active.configMap (ConfigMapNodeConfigSource)
ConfigMap є посиланням на ConfigMap вузла.
ConfigMapNodeConfigSource містить інформацію для посилання на ConfigMap як джерело конфігурації для вузла. Цей API є застарілим з версії 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration
config.active.configMap.kubeletConfigKey (string), обовʼязково
KubeletConfigKey визначає, який ключ посилання ConfigMap відповідає структурі KubeletConfiguration. Це поле є обовʼязковим у всіх випадках.
config.active.configMap.name (string), обовʼязково
Name — metadata.name посилання ConfigMap. Це поле є обовʼязковим у всіх випадках.
config.active.configMap.namespace (string), обовʼязково
Namespace — metadata.namespace посилання ConfigMap. Це поле є обовʼязковим у всіх випадках.
config.active.configMap.resourceVersion (string)
ResourceVersion — metadata.ResourceVersion посилання ConfigMap. Це поле заборонено в Node.Spec, і обовʼязкове в Node.Status.
config.active.configMap.uid (string)
UID — metadata.UID посилання ConfigMap. Це поле заборонено в Node.Spec, і обовʼязкове в Node.Status.
config.assigned (NodeConfigSource)
Assigned повідомляє про контрольовану конфігурацію, яку вузол спробує використовувати. Коли Node.Spec.ConfigSource оновлюється, вузол зберігає асоційоване конфігураційне навантаження на локальний диск разом із записом, що вказує на призначену конфігурацію. Вузол звертається до цього запису, щоб вибрати свою контрольовану конфігурацію, і повідомляє про цей запис в Assigned. Assigned оновлюється в статусі лише після того, як запис збережено на диск. Коли Kubelet перезавантажується, він намагається зробити призначену конфігурацію активною конфігурацією, завантажуючи та перевіряючи контрольоване навантаження, ідентифіковане Assigned.
NodeConfigSource вказує джерело конфігурації вузла. Тільки одне підполе (без урахування метаданих), має бути не нульовим. Цей API є застарілим з версії 1.22
config.assigned.configMap (ConfigMapNodeConfigSource)
ConfigMap є посиланням на ConfigMap вузла
ConfigMapNodeConfigSource містить інформацію для посилання на ConfigMap як джерело конфігурації для вузла. Цей API є застарілим з версії 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration
config.assigned.configMap.kubeletConfigKey (string), обовʼязково
KubeletConfigKey визначає, який ключ посилання ConfigMap відповідає структурі KubeletConfiguration. Це поле є обовʼязковим у всіх випадках.
config.assigned.configMap.name (string), обовʼязково
Name — metadata.name посилання ConfigMap. Це поле є обовʼязковим у всіх випадках.
config.assigned.configMap.namespace (string), обовʼязково
Namespace — metadata.namespace посилання ConfigMap. Це поле є обовʼязковим у всіх випадках.
config.assigned.configMap.resourceVersion (string)
ResourceVersion — metadata.ResourceVersion посилання ConfigMap. Це поле заборонено в Node.Spec, і обовʼязкове в Node.Status.
config.assigned.configMap.uid (string)
UID — metadata.UID посилання ConfigMap. Це поле заборонено в Node.Spec, і обовʼязкове в Node.Status.
config.error (string)
Error описує будь-які проблеми під час узгодження Spec.ConfigSource з Active конфігурацією. Помилки можуть виникати, наприклад, при спробі зберегти Spec.ConfigSource у локальний запис Assigned, при спробі зберегти повʼязане конфігураційне навантаження, при спробі завантажити або перевірити Assigned конфігурацію тощо. Помилки можуть виникати на різних етапах синхронізації конфігурації. Ранні помилки (наприклад, помилки завантаження або збереження) не призведуть до повернення до LastKnownGood і можуть бути виправлені під час повторних спроб Kubelet. Пізні помилки (наприклад, помилки завантаження або перевірки збереженої конфігурації) призведуть до повернення до LastKnownGood. У останньому випадку зазвичай можна вирішити помилку, виправивши конфігурацію, призначену в Spec.ConfigSource. Додаткову інформацію для налагодження можна знайти, шукаючи повідомлення про помилку в лозі Kubelet. Error є описом стану помилки, зрозумілим людині; машини можуть перевірити, чи порожній Error, але не повинні покладатися на стабільність тексту Error у різних версіях Kubelet.
config.lastKnownGood (NodeConfigSource)
LastKnownGood повідомляє про контрольовану конфігурацію, до якої вузол повернеться при виникненні помилки під час спроби використати Assigned конфігурацію. Assigned конфігурація стає LastKnownGood, коли вузол визначає, що Assigned конфігурація стабільна і правильна. Це наразі реалізовано як 10-хвилинний період перевірки, що починається, коли локальний запис Assigned конфігурації оновлюється. Якщо Assigned конфігурація є Active наприкінці цього періоду, вона стає LastKnownGood. Зазначте, що якщо Spec.ConfigSource скидається до nil (використовуйте стандартні локальні налаштування), LastKnownGood також негайно скидається до nil, оскільки локальна стандартна конфігурація завжди вважається правильною. Ви не повинні робити припущення про метод вузла щодо визначення стабільності та правильності конфігурації, оскільки це може змінюватися або ставати налаштовуваним у майбутньому.
NodeConfigSource вказує джерело конфігурації вузла. Тільки одне підполе (без урахування метаданих), має бути не нульовим. Цей API є застарілим з версії 1.22
config.lastKnownGood.configMap (ConfigMapNodeConfigSource)
ConfigMap є посиланням на ConfigMap вузла.
ConfigMapNodeConfigSource містить інформацію для посилання на ConfigMap як джерело конфігурації для вузла. Цей API є застарілим з версії 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration
config.lastKnownGood.configMap.kubeletConfigKey (string), обовʼязково
KubeletConfigKey визначає, який ключ посилання ConfigMap відповідає структурі KubeletConfiguration. Це поле є обовʼязковим у всіх випадках.
config.lastKnownGood.configMap.name (string), обовʼязково
Name — metadata.name посилання ConfigMap. Це поле є обовʼязковим у всіх випадках.
config.lastKnownGood.configMap.namespace (string), обовʼязково
Namespace — metadata.namespace посилання ConfigMap. Це поле є обовʼязковим у всіх випадках.
config.lastKnownGood.configMap.resourceVersion (string)
ResourceVersion — metadata.ResourceVersion посилання ConfigMap. Це поле заборонено в Node.Spec, і обовʼязкове в Node.Status.
config.lastKnownGood.configMap.uid (string)
UID — metadata.UID посилання ConfigMap. Це поле заборонено в Node.Spec, і обовʼязкове в Node.Status.
daemonEndpoints (NodeDaemonEndpoints)
Endpoints демонів, що працюють на вузлі.
NodeDaemonEndpoints містить порти, відкриті демонами, що працюють на вузлі.
features (NodeFeatures)
Features описує набір функцій, реалізованих реалізацією CRI.
NodeFeatures описує набір функцій, реалізованих реалізацією CRI. Функції, що містяться в NodeFeatures, повинні залежати лише від реалізації CRI, незалежно від обробників під час виконання.
features.supplementalGroupsPolicy (boolean)
SupplementalGroupsPolicy встановлюється в
true
, якщо середовище виконання підтримує SupplementalGroupsPolicy та ContainerUser.
images ([]ContainerImage)
Atomic: буде замінено під час злиття
Список контейнерних образів на цьому вузлі.
images.names ([]string)
Atomic: буде замінено під час злиття
Імена, відомі для образу. Наприклад, ["kubernetes.example/hyperkube:v1.0.7", "cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7"]
images.sizeBytes (int64)
Розмір образу у байтах.
nodeInfo (NodeSystemInfo)
Набір id/uuid для унікальної ідентифікації вузла. Докладніше: https://kubernetes.io/docs/concepts/nodes/node/#info
NodeSystemInfo є набором id/uuid для унікальної ідентифікації вузла.
nodeInfo.architecture (string), обовʼязково
Архітектура, повідомлена вузлом.
nodeInfo.bootID (string), обовʼязково
Boot ID, повідомлений вузлом.
nodeInfo.containerRuntimeVersion (string), обовʼязково
Версія контейнерного середовища, повідомлена вузлом через віддалений API середовища (наприклад, containerd://1.4.2).
nodeInfo.kernelVersion (string), обовʼязково
Версія ядра, повідомлена вузлом з 'uname -r' (наприклад, 3.16.0-0.bpo.4-amd64).
nodeInfo.kubeProxyVersion (string), обовʼязково
Застаріле: Версія KubeProxy, повідомлена вузлом.
nodeInfo.kubeletVersion (string), обовʼязково
Версія Kubelet, повідомлена вузлом.
nodeInfo.machineID (string), обовʼязково
MachineID, повідомлений вузлом. Для унікальної ідентифікації машини в кластері це поле є переважним. Докладніше у man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
nodeInfo.operatingSystem (string), обовʼязково
Операційна система, повідомлена вузлом.
nodeInfo.osImage (string), обовʼязково
Образ ОС, повідомлений вузлом з /etc/os-release (наприклад, Debian GNU/Linux 7 (wheezy)).
nodeInfo.systemUUID (string), обовʼязково
SystemUUID, повідомлений вузлом. Для унікальної ідентифікації машини переважним є MachineID. Це поле специфічне для хостів Red Hat https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid
phase (string)
NodePhase є недавно спостережуваною фазою життєвого циклу вузла. Докладніше: https://kubernetes.io/docs/concepts/nodes/node/#phase. Поле ніколи не заповнюється і тепер є застарілим.
runtimeHandlers ([]NodeRuntimeHandler)
Atomic: буде замінено під час злиття
Доступні обробники середовища виконання.
NodeRuntimeHandler — це набір інформації про обробники середовища виконання.
runtimeHandlers.features (NodeRuntimeHandlerFeatures)
Підтримувані функції.
NodeRuntimeHandlerFeatures — це набір функцій, реалізованих обробником середовища виконання.
runtimeHandlers.features.recursiveReadOnlyMounts (boolean)
RecursiveReadOnlyMounts встановлюється в
true
, якщо обробник середовища виконання підтримує RecursiveReadOnlyMounts.runtimeHandlers.features.userNamespaces (boolean)
UserNamespaces встановлюється в
true
, якщо обробник середовища виконання підтримує UserNamespaces, включаючи підтримку для томів.
runtimeHandlers.name (string)
Назва обробника середовища виконання. Порожнє для стандартного обробника середовища виконання.
volumesAttached ([]AttachedVolume)
Atomic: буде замінено під час злиття
Список томів, підключених до вузла.
AttachedVolume описує том, підключений до вузла
volumesAttached.devicePath (string), обовʼязково
DevicePath представляє шлях пристрою, де том має бути доступний.
volumesAttached.name (string), обовʼязково
Імʼя підключеного тому.
volumesInUse ([]string)
Atomic: буде замінено під час злиття
Список підключених томів, що використовуються (змонтовані) вузлом.
NodeList
NodeList є повним списком усіх вузлів, які зареєстровані у панелі управління.
apiVersion: v1
kind: NodeList
metadata (ListMeta)
Стандартні метадані списку. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]Node), обовʼязково
Список вузлів
Операції
get
отримати вказаний Node
HTTP запит
GET /api/v1/nodes/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя Node
pretty (в запиті): string
Відповідь
200 (Node): OK
401: Unauthorized
get
отримати статус вказаного Node
HTTP запит
GET /api/v1/nodes/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя Node
pretty (в запиті): string
Відповідь
200 (Node): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу Node
HTTP запит
GET /api/v1/nodes
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (NodeList): OK
401: Unauthorized
create
створення Node
HTTP запит
POST /api/v1/nodes
Параметри
body: Node, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (Node): OK
201 (Node): Created
202 (Node): Accepted
401: Unauthorized
update
заміна вказаного Node
HTTP запит
PUT /api/v1/nodes/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя Node
body: Node, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (Node): OK
201 (Node): Created
401: Unauthorized
update
заміна статусу вказаного Node
HTTP запит
PUT /api/v1/nodes/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя Node
body: Node, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (Node): OK
201 (Node): Created
401: Unauthorized
patch
часткове оновлення вказаного Node
HTTP запит
PATCH /api/v1/nodes/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя Node
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (Node): OK
201 (Node): Created
401: Unauthorized
patch
часткове оновлення статусу вказаного Node
HTTP запит
PATCH /api/v1/nodes/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя Node
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (Node): OK
201 (Node): Created
401: Unauthorized
delete
видалення Node
HTTP запит
DELETE /api/v1/nodes/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя Node
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
видалення колекції Node
HTTP запит
DELETE /api/v1/nodes
Параметри
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