Node

Node — робочий вузол в Kubernetes.

apiVersion: v1

import "k8s.io/api/core/v1"

Node

Node є робочим вузлом в Kubernetes. Кожен вузол буде мати унікальний ідентифікатор у кеші (тобто в etcd).


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 містить порти, відкриті демонами, що працюють на вузлі.

    • daemonEndpoints.kubeletEndpoint (DaemonEndpoint)

      Endpoint, на якому слухає Kubelet.

      DaemonEndpoint містить інформацію про один Endpoint демона.

      • daemonEndpoints.kubeletEndpoint.Port (int32), обовʼязково

        Номер порту даного Endpoint.

  • 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 є повним списком усіх вузлів, які зареєстровані у панелі управління.


Операції


get отримати вказаний Node

HTTP запит

GET /api/v1/nodes/{name}

Параметри

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

    імʼя Node

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

    pretty

Відповідь

200 (Node): OK

401: Unauthorized

get отримати статус вказаного Node

HTTP запит

GET /api/v1/nodes/{name}/status

Параметри

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

    імʼя Node

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

    pretty

Відповідь

200 (Node): OK

401: Unauthorized

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

HTTP запит

GET /api/v1/nodes

Параметри

Відповідь

200 (NodeList): OK

401: Unauthorized

create створення Node

HTTP запит

POST /api/v1/nodes

Параметри

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

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    pretty

Відповідь

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    pretty

Відповідь

200 (Node): OK

201 (Node): Created

401: Unauthorized

update заміна статусу вказаного Node

HTTP запит

PUT /api/v1/nodes/{name}/status

Параметри

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

    імʼя Node

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

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    pretty

Відповідь

200 (Node): OK

201 (Node): Created

401: Unauthorized

patch часткове оновлення вказаного Node

HTTP запит

PATCH /api/v1/nodes/{name}

Параметри

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

    імʼя Node

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

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    force

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

    pretty

Відповідь

200 (Node): OK

201 (Node): Created

401: Unauthorized

patch часткове оновлення статусу вказаного Node

HTTP запит

PATCH /api/v1/nodes/{name}/status

Параметри

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

    імʼя Node

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

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    force

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

    pretty

Відповідь

200 (Node): OK

201 (Node): Created

401: Unauthorized

delete видалення Node

HTTP запит

DELETE /api/v1/nodes/{name}

Параметри

Відповідь

200 (Status): OK

202 (Status): Accepted

401: Unauthorized

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

HTTP запит

DELETE /api/v1/nodes

Параметри

Відповідь

200 (Status): OK

401: Unauthorized

Змінено September 06, 2024 at 4:29 PM PST: upstream sync (b8cab2cff8)