第 2 章 Node [v1]
- 描述
- 节点是 Kubernetes 中的 worker 节点。每个节点在缓存中都有一个唯一标识符(例如在 etcd 中)。
- 类型
-
对象
2.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| nodeSpec 描述了创建节点的属性。 |
|
| NodeStatus 显示有关节点当前状态的信息。 |
2.1.1. .spec
- 描述
- nodeSpec 描述了创建节点的属性。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| NodeConfigSource 指定节点配置的来源。只有一个子字段(不包括元数据)必须是非il。此 API 从 1.22 开始已弃用 |
|
| 已弃用。并非所有 kubelet 将设置此字段。在 1.13 后删除字段,请参阅 :https://issues.k8s.io/61966 |
|
| PodCIDR 代表分配给节点的 pod IP 范围。 |
|
| podCIDRs 代表分配给节点的 IP 范围,供该节点上的 Pod 使用。如果指定了此字段,则 0th 条目必须与 podCIDR 字段匹配。它最多可包含每个 IPv4 和 IPv6 的 1 值。 |
|
| 由云供应商分配的节点的 ID,格式为: <ProviderName>://<ProviderSpecificNodeID> |
|
| 如果指定,节点的污点。 |
|
| 此 Taint 附加到任何不容许 Taint 的 pod 上的"effect"的节点。 |
|
| 不可调度控制新 pod 的节点调度性。默认情况下,节点可以调度。更多信息: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration |
2.1.2. .spec.configSource
- 描述
- NodeConfigSource 指定节点配置的来源。只有一个子字段(不包括元数据)必须是非il。此 API 从 1.22 开始已弃用
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| ConfigMapNodeConfigSource 包含将 ConfigMap 引用为节点配置源的信息。此 API 从 1.22 开始已弃用: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration |
2.1.3. .spec.configSource.configMap
- 描述
- ConfigMapNodeConfigSource 包含将 ConfigMap 引用为节点配置源的信息。此 API 从 1.22 开始已弃用: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration
- 类型
-
object
- 必填
-
namespace
-
name
-
kubeletConfigKey
-
属性 | 类型 | 描述 |
---|---|---|
|
| KubeletConfigKey 声明引用 ConfigMap 的键对应于 KubeletConfiguration 结构此字段。 |
|
| name 是引用的 ConfigMap 的 metadata.name。所有情况下都需要此字段。 |
|
| namespace 是引用的 ConfigMap 的 metadata.namespace。所有情况下都需要此字段。 |
|
| resourceVersion 是引用的 ConfigMap 的 metadata.ResourceVersion。此字段在 Node.Spec 中禁止,在 Node.Status 中需要。 |
|
| UID 是引用的 ConfigMap 的 metadata.UID。此字段在 Node.Spec 中禁止,在 Node.Status 中需要。 |
2.1.4. .spec.taints
- 描述
- 如果指定,节点的污点。
- 类型
-
array
2.1.5. .spec.taints[]
- 描述
- 此 Taint 附加到任何不容许 Taint 的 pod 上的"effect"的节点。
- 类型
-
object
- 必填
-
key
-
effect
-
属性 | 类型 | 描述 |
---|---|---|
|
| 必需。污点对不容许该污点的 pod 的影响。有效效果为 NoSchedule、PreferNoSchedule 和 NoExecute。
可能枚举值: - |
|
| 必需。要应用到节点的污点键。 |
| TimeAdded 代表添加污点的时间。它仅针对 NoExecute 污点编写。 | |
|
| 与污点键对应的污点值。 |
2.1.6. .status
- 描述
- NodeStatus 显示有关节点当前状态的信息。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 节点可访问的地址列表。从云供应商查询(如果可用)。更多信息: https://kubernetes.io/docs/concepts/nodes/node/#addresses 注意:此字段声明为可合并的,但合并密钥不够唯一,这可能会在合并时造成数据崩溃。调用者应该使用 full-replacement 补丁。如需示例,请参阅 https://pr.k8s.io/79391。消费者应假定地址可在节点生命周期内发生更改。但是,有些例外情况可能无法正常工作,例如,在 Downward API (status.hostIP)中继承节点地址的 Pod。 |
|
| NodeAddress 包含节点地址的信息。 |
| allocatable 代表可用于调度的节点的资源。默认为 Capacity。 | |
| Capacity 代表节点的总资源。更多信息: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity | |
|
| 条件是当前观察到的节点条件的数组。更多信息: https://kubernetes.io/docs/concepts/nodes/node/#condition |
|
| NodeCondition 包含节点的条件信息。 |
|
| NodeConfigStatus 描述了 Node.Spec.ConfigSource 分配的配置状态。 |
|
| NodeDaemonEndpoints 列出了由节点上运行的守护进程打开的端口。 |
|
| 此节点上的容器镜像列表 |
|
| 描述容器镜像 |
|
| NodeSystemInfo 是一组 ids/uuids,用于唯一标识节点。 |
|
| NodePhase 是节点最近观察到的生命周期阶段。更多信息: https://kubernetes.io/docs/concepts/nodes/node/#phase 字段永不填充,现在已弃用。
可能枚举值: - |
|
| 附加到节点的卷列表。 |
|
| AttachedVolume 描述了附加到节点的卷 |
|
| 节点使用的可附加卷列表(挂载)。 |
2.1.7. .status.addresses
- 描述
- 节点可访问的地址列表。从云供应商查询(如果可用)。更多信息: https://kubernetes.io/docs/concepts/nodes/node/#addresses 注意:此字段声明为可合并的,但合并密钥不够唯一,这可能会在合并时造成数据崩溃。调用者应该使用 full-replacement 补丁。如需示例,请参阅 https://pr.k8s.io/79391。消费者应假定地址可在节点生命周期内发生更改。但是,有些例外情况可能无法正常工作,例如,在 Downward API (status.hostIP)中继承节点地址的 Pod。
- 类型
-
array
2.1.8. .status.addresses[]
- 描述
- NodeAddress 包含节点地址的信息。
- 类型
-
object
- 必填
-
type
-
address
-
属性 | 类型 | 描述 |
---|---|---|
|
| 节点地址。 |
|
| 节点地址类型,一个用于 Hostname、ExternalIP 或 InternalIP 之一。 |
2.1.9. .status.conditions
- 描述
- 条件是当前观察到的节点条件的数组。更多信息: https://kubernetes.io/docs/concepts/nodes/node/#condition
- 类型
-
array
2.1.10. .status.conditions[]
- 描述
- NodeCondition 包含节点的条件信息。
- 类型
-
object
- 必填
-
type
-
status
-
属性 | 类型 | 描述 |
---|---|---|
| 在给定条件上有更新的时间。 | |
| 条件从一个状态传输到另一个状态最后一次的时间。 | |
|
| 人类可读的消息,指示最后一次转换的详细信息。 |
|
| (brief)条件最后一次转换的原因。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 节点状况的类型。 |
2.1.11. .status.config
- 描述
- NodeConfigStatus 描述了 Node.Spec.ConfigSource 分配的配置状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| NodeConfigSource 指定节点配置的来源。只有一个子字段(不包括元数据)必须是非il。此 API 从 1.22 开始已弃用 |
|
| NodeConfigSource 指定节点配置的来源。只有一个子字段(不包括元数据)必须是非il。此 API 从 1.22 开始已弃用 |
|
| 错误描述了将 Spec.ConfigSource 协调到 Active 配置中的任何问题。可能会出现错误,例如尝试检查点 Spec.ConfigSource 到本地分配记录,尝试检查点与 Spec.ConfigSource 关联的有效负载,尝试加载或验证分配的配置等。同步配置时在不同点上可能会出现错误。以前的错误(如下载或检查点错误)不会导致回滚到 LastKnownGood,并可能会在 Kubelet 重试过程中解决。之后的错误(如加载或验证检查点的配置)将导致回滚到 LastKnownGood。在后者的情况下,通常可以通过修复 Spec.ConfigSource 中分配的配置来解决这个问题。您可以通过在 Kubelet 日志中搜索错误消息来查找用于调试的额外信息。错误是错误状态人类可读的描述;机器可以检查 Error 是否为空,但应该不依赖于 Kubelet 版本中的 Error 文本的稳定性。 |
|
| NodeConfigSource 指定节点配置的来源。只有一个子字段(不包括元数据)必须是非il。此 API 从 1.22 开始已弃用 |
2.1.12. .status.config.active
- 描述
- NodeConfigSource 指定节点配置的来源。只有一个子字段(不包括元数据)必须是非il。此 API 从 1.22 开始已弃用
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| ConfigMapNodeConfigSource 包含将 ConfigMap 引用为节点配置源的信息。此 API 从 1.22 开始已弃用: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration |
2.1.13. .status.config.active.configMap
- 描述
- ConfigMapNodeConfigSource 包含将 ConfigMap 引用为节点配置源的信息。此 API 从 1.22 开始已弃用: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration
- 类型
-
object
- 必填
-
namespace
-
name
-
kubeletConfigKey
-
属性 | 类型 | 描述 |
---|---|---|
|
| KubeletConfigKey 声明引用 ConfigMap 的键对应于 KubeletConfiguration 结构此字段。 |
|
| name 是引用的 ConfigMap 的 metadata.name。所有情况下都需要此字段。 |
|
| namespace 是引用的 ConfigMap 的 metadata.namespace。所有情况下都需要此字段。 |
|
| resourceVersion 是引用的 ConfigMap 的 metadata.ResourceVersion。此字段在 Node.Spec 中禁止,在 Node.Status 中需要。 |
|
| UID 是引用的 ConfigMap 的 metadata.UID。此字段在 Node.Spec 中禁止,在 Node.Status 中需要。 |
2.1.14. .status.config.assigned
- 描述
- NodeConfigSource 指定节点配置的来源。只有一个子字段(不包括元数据)必须是非il。此 API 从 1.22 开始已弃用
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| ConfigMapNodeConfigSource 包含将 ConfigMap 引用为节点配置源的信息。此 API 从 1.22 开始已弃用: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration |
2.1.15. .status.config.assigned.configMap
- 描述
- ConfigMapNodeConfigSource 包含将 ConfigMap 引用为节点配置源的信息。此 API 从 1.22 开始已弃用: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration
- 类型
-
object
- 必填
-
namespace
-
name
-
kubeletConfigKey
-
属性 | 类型 | 描述 |
---|---|---|
|
| KubeletConfigKey 声明引用 ConfigMap 的键对应于 KubeletConfiguration 结构此字段。 |
|
| name 是引用的 ConfigMap 的 metadata.name。所有情况下都需要此字段。 |
|
| namespace 是引用的 ConfigMap 的 metadata.namespace。所有情况下都需要此字段。 |
|
| resourceVersion 是引用的 ConfigMap 的 metadata.ResourceVersion。此字段在 Node.Spec 中禁止,在 Node.Status 中需要。 |
|
| UID 是引用的 ConfigMap 的 metadata.UID。此字段在 Node.Spec 中禁止,在 Node.Status 中需要。 |
2.1.16. .status.config.lastKnownGood
- 描述
- NodeConfigSource 指定节点配置的来源。只有一个子字段(不包括元数据)必须是非il。此 API 从 1.22 开始已弃用
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| ConfigMapNodeConfigSource 包含将 ConfigMap 引用为节点配置源的信息。此 API 从 1.22 开始已弃用: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration |
2.1.17. .status.config.lastKnownGood.configMap
- 描述
- ConfigMapNodeConfigSource 包含将 ConfigMap 引用为节点配置源的信息。此 API 从 1.22 开始已弃用: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration
- 类型
-
object
- 必填
-
namespace
-
name
-
kubeletConfigKey
-
属性 | 类型 | 描述 |
---|---|---|
|
| KubeletConfigKey 声明引用 ConfigMap 的键对应于 KubeletConfiguration 结构此字段。 |
|
| name 是引用的 ConfigMap 的 metadata.name。所有情况下都需要此字段。 |
|
| namespace 是引用的 ConfigMap 的 metadata.namespace。所有情况下都需要此字段。 |
|
| resourceVersion 是引用的 ConfigMap 的 metadata.ResourceVersion。此字段在 Node.Spec 中禁止,在 Node.Status 中需要。 |
|
| UID 是引用的 ConfigMap 的 metadata.UID。此字段在 Node.Spec 中禁止,在 Node.Status 中需要。 |
2.1.18. .status.daemonEndpoints
- 描述
- NodeDaemonEndpoints 列出了由节点上运行的守护进程打开的端口。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| DaemonEndpoint 包含有关单个守护进程端点的信息。 |
2.1.19. .status.daemonEndpoints.kubeletEndpoint
- 描述
- DaemonEndpoint 包含有关单个守护进程端点的信息。
- 类型
-
object
- 必填
-
端口
-
属性 | 类型 | 描述 |
---|---|---|
|
| 给定端点的端口号。 |
2.1.20. .status.images
- 描述
- 此节点上的容器镜像列表
- 类型
-
array
2.1.21. .status.images[]
- 描述
- 描述容器镜像
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 此镜像已知的名称。例如 ["kubernetes.example/hyperkube:v1.0.7", "cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7"] |
|
| 以字节为单位镜像的大小。 |
2.1.22. .status.nodeInfo
- 描述
- NodeSystemInfo 是一组 ids/uuids,用于唯一标识节点。
- 类型
-
object
- 必填
-
machineID
-
systemUUID
-
bootID
-
kernelVersion
-
osImage
-
containerRuntimeVersion
-
kubeletVersion
-
kubeProxyVersion
-
operatingSystem
-
架构
-
属性 | 类型 | 描述 |
---|---|---|
|
| 节点报告的构架 |
|
| 节点报告的引导 ID。 |
|
| 通过运行时远程 API (如 containerd://1.4.2)报告的 containerruntime Version。 |
|
| 节点从 'uname -r' 报告的内核版本(如 3.16.0-0.bpo.4-amd64)。 |
|
| 节点报告的 kubeProxy 版本。 |
|
| 节点报告的 kubelet 版本。 |
|
| 节点报告的 MachineID。对于集群中唯一机器识别,首选此字段。从 man (5) machine-id 了解更多 :http://man7.org/linux/man-pages/man5/machine-id.5.html |
|
| 节点报告的操作系统 |
|
| 节点从 /etc/os-release (如 Debian GNU/Linux 7 (wheezy))报告的操作系统镜像。 |
|
| 节点报告的 SystemUUID。对于唯一机器识别 MachineID,首选使用。该字段特定于红帽主机 https://access.redhat.com/documentation/zh-cn/red_hat_subscription_management/1/html/rhsm/uuid |
2.1.23. .status.volumesAttached
- 描述
- 附加到节点的卷列表。
- 类型
-
array
2.1.24. .status.volumesAttached[]
- 描述
- AttachedVolume 描述了附加到节点的卷
- 类型
-
object
- 必填
-
name
-
devicePath
-
属性 | 类型 | 描述 |
---|---|---|
|
| DevicePath 代表卷应该可用的设备路径 |
|
| 附加卷的名称 |