Node

节点是 Kubernetes 中的工作节点。

apiVersion: v1

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

Node

节点是 Kubernetes 中的工作节点。每个节点在缓存(即 etcd)中都有一个唯一的标识符。


NodeSpec

NodeSpec 描述创建节点时使用的属性。


  • configSource (NodeConfigSource)

    已弃用:以前用于指定 DynamicKubeletConfig 功能的节点配置源。此功能已删除。

    NodeConfigSource 指定节点配置的源。有且仅有一个子字段(不包括元数据)必须是非 nil 的。此 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 是引用的 ConfigMap 的 metadata.name。此字段在所有情况下都是必需的。

      • configSource.configMap.namespace (string),必需

        Namespace 是引用的 ConfigMap 的 metadata.namespace。此字段在所有情况下都是必需的。

      • configSource.configMap.resourceVersion (string)

        ResourceVersion 是引用的 ConfigMap 的 metadata.ResourceVersion。此字段在 Node.Spec 中被禁止,在 Node.Status 中是必需的。

      • configSource.configMap.uid (string)

        UID 是引用的 ConfigMap 的 metadata.UID。此字段在 Node.Spec 中被禁止,在 Node.Status 中是必需的。

  • externalID (string)

    已弃用。并非所有 kubelet 都会设置此字段。在 1.13 之后移除该字段。请参阅:https://issues.k8s.io/61966

  • podCIDR (string)

    PodCIDR 表示分配给节点的 pod IP 范围。

  • podCIDRs ([]string)

    集合:在合并期间将保留唯一值

    podCIDRs 表示分配给节点的 IP 范围,供该节点上的 Pod 使用。如果指定此字段,则第 0 个条目必须与 podCIDR 字段匹配。对于 IPv4 和 IPv6,它最多可以包含 1 个值。

  • providerID (string)

    云提供商分配的节点 ID,格式为:<ProviderName>://<ProviderSpecificNodeID>

  • taints ([]Taint)

    原子性:在合并期间将被替换

    如果指定,则为节点的污点。

    附加此 Taint 的节点对任何不容忍该 Taint 的 Pod 具有“效果”。

    • taints.effect (string),必需

      必需。污点对不容忍该污点的 Pod 的影响。有效效果为 NoSchedule、PreferNoSchedule 和 NoExecute。

    • taints.key (string),必需

      必需。要应用于节点的污点键。

    • taints.timeAdded (Time)

      TimeAdded 表示添加污点的时间。它仅为 NoExecute 污点写入。

      Time 是 time.Time 的包装器,它支持正确地编组为 YAML 和 JSON。为 time 包提供的许多工厂方法提供了包装器。

    • taints.value (string)

      与污点键对应的污点值。

  • unschedulable (boolean)

    Unschedulable 控制新 Pod 的节点可调度性。默认情况下,节点是可调度的。更多信息:https://kubernetes.top/docs/concepts/nodes/node/#manual-node-administration

NodeStatus

NodeStatus 是有关节点当前状态的信息。


  • addresses ([]NodeAddress)

    补丁策略:在键 type 上合并

    映射:在合并期间,将保留键类型上的唯一值

    可访问节点的地址列表。如果可用,则从云提供商查询。更多信息:https://kubernetes.top/docs/concepts/nodes/node/#addresses 注意:此字段被声明为可合并,但合并键不够唯一,这可能会在合并时导致数据损坏。调用者应该使用完全替换补丁。有关示例,请参阅 https://pr.k8s.io/79391。消费者应假设地址可以在节点生命周期内更改。但是,在某些情况下,这可能无法实现,例如在自身状态中继承节点地址的 Pod 或 downward 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.top/docs/reference/node/node-status/#capacity

  • conditions ([]NodeCondition)

    补丁策略:在键 type 上合并

    映射:在合并期间,将保留键类型上的唯一值

    Conditions 是当前观察到的节点条件数组。更多信息:https://kubernetes.top/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 将表示 Assigned 配置的当前版本,或当前 LastKnownGood 配置,具体取决于尝试使用 Assigned 配置是否会导致错误。

      NodeConfigSource 指定节点配置的源。有且仅有一个子字段(不包括元数据)必须是非 nil 的。此 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 是引用的 ConfigMap 的 metadata.name。此字段在所有情况下都是必需的。

        • config.active.configMap.namespace (string),必需

          Namespace 是引用的 ConfigMap 的 metadata.namespace。此字段在所有情况下都是必需的。

        • config.active.configMap.resourceVersion (string)

          ResourceVersion 是引用的 ConfigMap 的 metadata.ResourceVersion。此字段在 Node.Spec 中被禁止,在 Node.Status 中是必需的。

        • config.active.configMap.uid (string)

          UID 是引用的 ConfigMap 的 metadata.UID。此字段在 Node.Spec 中被禁止,在 Node.Status 中是必需的。

    • config.assigned (NodeConfigSource)

      Assigned 报告节点将尝试使用的已检查点配置。当 Node.Spec.ConfigSource 更新时,节点会将相关的配置负载以及指示预期配置的记录检查点保存到本地磁盘。节点会参考此记录来选择其配置检查点,并在 Assigned 中报告此记录。只有在记录已检查点保存到磁盘后,Assigned 才会更新状态。当 Kubelet 重启时,它会尝试通过加载和验证 Assigned 所标识的已检查点负载,使 Assigned 配置成为 Active 配置。

      NodeConfigSource 指定节点配置的源。有且仅有一个子字段(不包括元数据)必须是非 nil 的。此 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 (字符串),必需

          KubeletConfigKey 声明引用的 ConfigMap 的哪个键对应于 KubeletConfiguration 结构。此字段在所有情况下都是必需的。

        • config.assigned.configMap.name (字符串),必需

          Name 是引用的 ConfigMap 的 metadata.name。此字段在所有情况下都是必需的。

        • config.assigned.configMap.namespace (字符串),必需

          Namespace 是引用的 ConfigMap 的 metadata.namespace。此字段在所有情况下都是必需的。

        • config.assigned.configMap.resourceVersion (字符串)

          ResourceVersion 是引用的 ConfigMap 的 metadata.ResourceVersion。此字段在 Node.Spec 中被禁止,在 Node.Status 中是必需的。

        • config.assigned.configMap.uid (字符串)

          UID 是引用的 ConfigMap 的 metadata.UID。此字段在 Node.Spec 中被禁止,在 Node.Status 中是必需的。

    • config.error (字符串)

      Error 描述了将 Spec.ConfigSource 协调到 Active 配置时出现的任何问题。例如,尝试将 Spec.ConfigSource 检查点保存到本地 Assigned 记录、尝试检查点保存与 Spec.ConfigSource 相关的负载、尝试加载或验证 Assigned 配置等都可能出现错误。在同步配置时,可能会在不同的点出现错误。较早的错误(例如,下载或检查点保存错误)不会导致回滚到 LastKnownGood,并且可能会在 Kubelet 重试后解决。较晚的错误(例如,加载或验证已检查点的配置)将导致回滚到 LastKnownGood。在后一种情况下,通常可以通过修复 Spec.ConfigSource 中分配的配置来解决错误。您可以通过在 Kubelet 日志中搜索错误消息来找到更多调试信息。Error 是对错误状态的人类可读描述;机器可以检查 Error 是否为空,但不应依赖于不同 Kubelet 版本中 Error 文本的稳定性。

    • config.lastKnownGood (NodeConfigSource)

      LastKnownGood 报告节点在尝试使用 Assigned 配置时遇到错误时将回退到的已检查点配置。当节点确定 Assigned 配置稳定且正确时,Assigned 配置将变为 LastKnownGood 配置。目前,这是通过在本地 Assigned 配置记录更新后开始的 10 分钟浸泡期实现的。如果 Assigned 配置在此期间结束时处于 Active 状态,则它将变为 LastKnownGood。请注意,如果 Spec.ConfigSource 重置为 nil(使用本地默认值),则 LastKnownGood 也会立即重置为 nil,因为始终假定本地默认配置是良好的。您不应假设节点确定配置稳定性和正确性的方法,因为将来可能会更改或变得可配置。

      NodeConfigSource 指定节点配置的源。有且仅有一个子字段(不包括元数据)必须是非 nil 的。此 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 (字符串),必需

          KubeletConfigKey 声明引用的 ConfigMap 的哪个键对应于 KubeletConfiguration 结构。此字段在所有情况下都是必需的。

        • config.lastKnownGood.configMap.name (字符串),必需

          Name 是引用的 ConfigMap 的 metadata.name。此字段在所有情况下都是必需的。

        • config.lastKnownGood.configMap.namespace (字符串),必需

          Namespace 是引用的 ConfigMap 的 metadata.namespace。此字段在所有情况下都是必需的。

        • config.lastKnownGood.configMap.resourceVersion (字符串)

          ResourceVersion 是引用的 ConfigMap 的 metadata.ResourceVersion。此字段在 Node.Spec 中被禁止,在 Node.Status 中是必需的。

        • config.lastKnownGood.configMap.uid (字符串)

          UID 是引用的 ConfigMap 的 metadata.UID。此字段在 Node.Spec 中被禁止,在 Node.Status 中是必需的。

  • daemonEndpoints (NodeDaemonEndpoints)

    节点上运行的守护进程的端点。

    NodeDaemonEndpoints 列出节点上运行的守护进程打开的端口。

    • daemonEndpoints.kubeletEndpoint (DaemonEndpoint)

      Kubelet 正在监听的端点。

      DaemonEndpoint 包含有关单个守护进程端点的信息。

      • daemonEndpoints.kubeletEndpoint.Port (int32),必需

        给定端点的端口号。

  • features (NodeFeatures)

    Features 描述 CRI 实现所实现的功能集。

    NodeFeatures 描述 CRI 实现所实现的功能集。NodeFeatures 中包含的功能应仅依赖于 CRI 实现,而与运行时处理程序无关。

    • features.supplementalGroupsPolicy (布尔值)

      如果运行时支持 SupplementalGroupsPolicy 和 ContainerUser,则 SupplementalGroupsPolicy 设置为 true。

  • images ([]ContainerImage)

    原子性:在合并期间将被替换

    此节点上的容器镜像列表

    描述容器镜像

    • images.names ([]字符串)

      原子性:在合并期间将被替换

      此镜像的已知名称。例如,["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.top/docs/concepts/nodes/node/#info

    NodeSystemInfo 是一组用于唯一标识节点的 ID/UUID。

    • nodeInfo.architecture (字符串),必需

      节点报告的架构

    • nodeInfo.bootID (字符串),必需

      节点报告的启动 ID。

    • nodeInfo.containerRuntimeVersion (字符串),必需

      节点通过运行时远程 API 报告的 ContainerRuntime 版本(例如 containerd://1.4.2)。

    • nodeInfo.kernelVersion (字符串),必需

      节点从 'uname -r' 报告的内核版本(例如 3.16.0-0.bpo.4-amd64)。

    • nodeInfo.kubeProxyVersion (字符串),必需

      已弃用:节点报告的 KubeProxy 版本。

    • nodeInfo.kubeletVersion (字符串),必需

      节点报告的 Kubelet 版本。

    • nodeInfo.machineID (字符串),必需

      节点报告的 MachineID。为了在集群中唯一标识机器,首选此字段。从 man(5) machine-id 了解更多信息:http://man7.org/linux/man-pages/man5/machine-id.5.html

    • nodeInfo.operatingSystem (字符串),必需

      节点报告的操作系统

    • nodeInfo.osImage (字符串),必需

      节点从 /etc/os-release 报告的操作系统镜像(例如 Debian GNU/Linux 7 (wheezy))。

    • nodeInfo.systemUUID (字符串),必需

      节点报告的 SystemUUID。对于唯一的机器标识,首选 MachineID。此字段特定于 Red Hat 主机 https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid

  • phase (字符串)

    NodePhase 是最近观察到的节点的生命周期阶段。更多信息:https://kubernetes.top/docs/concepts/nodes/node/#phase 该字段永远不会被填充,现在已弃用。

  • runtimeHandlers ([]NodeRuntimeHandler)

    原子性:在合并期间将被替换

    可用的运行时处理程序。

    NodeRuntimeHandler 是一组运行时处理程序信息。

    • runtimeHandlers.features (NodeRuntimeHandlerFeatures)

      支持的功能。

      NodeRuntimeHandlerFeatures 是运行时处理程序实现的功能集。

      • runtimeHandlers.features.recursiveReadOnlyMounts (布尔值)

        如果运行时处理程序支持 RecursiveReadOnlyMounts,则 RecursiveReadOnlyMounts 设置为 true。

      • runtimeHandlers.features.userNamespaces (布尔值)

        如果运行时处理程序支持 UserNamespaces(包括用于卷的 UserNamespaces),则 UserNamespaces 设置为 true。

    • runtimeHandlers.name (字符串)

      运行时处理程序名称。对于默认运行时处理程序,此值为空。

  • volumesAttached ([]AttachedVolume)

    原子性:在合并期间将被替换

    附加到节点的卷列表。

    AttachedVolume 描述附加到节点的卷

    • volumesAttached.devicePath (字符串),必需

      DevicePath 表示卷应可用的设备路径

    • volumesAttached.name (字符串),必需

      附加卷的名称

  • volumesInUse ([]字符串)

    原子性:在合并期间将被替换

    节点正在使用(已挂载)的可附加卷的列表。

NodeList

NodeList 是已在主节点注册的所有节点的完整列表。


操作


get 读取指定的节点

HTTP 请求

GET /api/v1/nodes/{name}

参数

  • name (在路径中):字符串,必需

    节点的名称

  • pretty (在查询中):字符串

    pretty

响应

200 (Node): OK

401: 未经授权

get 读取指定节点的状态

HTTP 请求

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

参数

  • name (在路径中):字符串,必需

    节点的名称

  • pretty (在查询中):字符串

    pretty

响应

200 (Node): OK

401: 未经授权

list 列出或监视 Node 类型的对象

HTTP 请求

GET /api/v1/nodes

参数

响应

200 (NodeList): OK

401: 未经授权

create 创建一个节点

HTTP 请求

POST /api/v1/nodes

参数

响应

200 (Node): OK

201 (Node): 已创建

202 (Node): 已接受

401: 未经授权

update 替换指定的节点

HTTP 请求

PUT /api/v1/nodes/{name}

参数

  • name (在路径中):字符串,必需

    节点的名称

  • body: Node,必需

  • dryRun (在查询中):字符串

    dryRun

  • fieldManager (在查询中):字符串

    fieldManager

  • fieldValidation (在查询中):字符串

    fieldValidation

  • pretty (在查询中):字符串

    pretty

响应

200 (Node): OK

201 (Node): 已创建

401: 未经授权

update 替换指定节点的状态

HTTP 请求

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

参数

  • name (在路径中):字符串,必需

    节点的名称

  • body: Node,必需

  • dryRun (在查询中):字符串

    dryRun

  • fieldManager (在查询中):字符串

    fieldManager

  • fieldValidation (在查询中):字符串

    fieldValidation

  • pretty (在查询中):字符串

    pretty

响应

200 (Node): OK

201 (Node): 已创建

401: 未经授权

patch 部分更新指定的节点

HTTP 请求

PATCH /api/v1/nodes/{name}

参数

  • name (在路径中):字符串,必需

    节点的名称

  • body: Patch,必需

  • dryRun (在查询中):字符串

    dryRun

  • fieldManager (在查询中):字符串

    fieldManager

  • fieldValidation (在查询中):字符串

    fieldValidation

  • force (在查询中):布尔值

    force

  • pretty (在查询中):字符串

    pretty

响应

200 (Node): OK

201 (Node): 已创建

401: 未经授权

patch 部分更新指定节点的状态

HTTP 请求

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

参数

  • name (在路径中):字符串,必需

    节点的名称

  • body: Patch,必需

  • dryRun (在查询中):字符串

    dryRun

  • fieldManager (在查询中):字符串

    fieldManager

  • fieldValidation (在查询中):字符串

    fieldValidation

  • force (在查询中):布尔值

    force

  • pretty (在查询中):字符串

    pretty

响应

200 (Node): OK

201 (Node): 已创建

401: 未经授权

delete 删除一个节点

HTTP 请求

DELETE /api/v1/nodes/{name}

参数

响应

200 (Status): OK

202 (Status): 已接受

401: 未经授权

deletecollection 删除节点集合

HTTP 请求

DELETE /api/v1/nodes

参数

响应

200 (Status): OK

401: 未经授权

此页面是自动生成的。

如果您计划报告此页面的问题,请在您的问题描述中说明此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

上次修改时间为 2024 年 8 月 28 日下午 6:01(太平洋标准时间):更新 v1.31 的生成 API 参考 (8ba98c79c1)