Kubelet 配置 (v1beta1)

资源类型

FormatOptions

出现于

FormatOptions 包含不同日志格式的选项。

字段描述
text [必填]
TextOptions

[Alpha] Text 包含日志格式 "text" 的选项。仅在启用 LoggingAlphaOptions 特性门控时可用。

json [必填]
JSONOptions

[Alpha] JSON 包含日志格式 "json" 的选项。仅在启用 LoggingAlphaOptions 特性门控时可用。

JSONOptions

出现于

JSONOptions 包含日志格式 "json" 的选项。

字段描述
OutputRoutingOptions [必填]
OutputRoutingOptions
(OutputRoutingOptions 的成员内嵌在此类型中。) 未提供描述。

LogFormatFactory

LogFormatFactory 为某些额外的非默认日志格式提供支持。

LoggingConfiguration

出现于

LoggingConfiguration 包含日志选项。

字段描述
format [必填]
字符串

Format 标志指定日志消息的结构。format 的默认值为 text

flushFrequency [必填]
TimeOrMetaDuration

日志刷新之间的最大时间。如果是字符串,则解析为时长(例如 "1s");如果是整数,则为最大纳秒数(例如 1s = 1000000000)。如果选定的日志后端写入日志消息时不带缓冲,则忽略此项。

verbosity [必填]
VerbosityLevel

Verbosity 是决定记录哪些日志消息的阈值。默认值为零,仅记录最重要的消息。较高的值会启用额外的消息。错误消息始终会被记录。

vmodule [必填]
VModuleConfiguration

VModule 覆盖单个文件的详细程度阈值。仅支持 "text" 日志格式。

options [必填]
FormatOptions

[Alpha] Options 保存特定于不同日志格式的附加参数。仅使用所选格式的选项,但所有选项都会经过验证。仅在启用 LoggingAlphaOptions 特性门控时可用。

LoggingOptions

LoggingOptions 可以与 ValidateAndApplyWithOptions 一起使用,以覆盖某些全局默认值。

字段描述
ErrorStream [必填]
io.Writer

ErrorStream 可用于覆盖 os.Stderr 默认值。

InfoStream [必填]
io.Writer

InfoStream 可用于覆盖 os.Stdout 默认值。

OutputRoutingOptions

出现于

OutputRoutingOptions 包含 "text" 和 "json" 均支持的选项。

字段描述
splitStream [必填]
bool

[Alpha] SplitStream 将错误消息重定向到 stderr,而信息消息则带缓冲地发送到 stdout。默认是将两者都写入 stdout,且不带缓冲。仅在启用 LoggingAlphaOptions 特性门控时可用。

infoBufferSize [必填]
k8s.io/apimachinery/pkg/api/resource.QuantityValue

[Alpha] InfoBufferSize 设置使用分流(split streams)时信息流的大小。默认值为零,即禁用缓冲。仅在启用 LoggingAlphaOptions 特性门控时可用。

TextOptions

出现于

TextOptions 包含日志格式 "text" 的选项。

字段描述
OutputRoutingOptions [必填]
OutputRoutingOptions
(OutputRoutingOptions 的成员内嵌在此类型中。) 未提供描述。

TimeOrMetaDuration

出现于

TimeOrMetaDuration 仅为了向后兼容 flushFrequency 字段而存在,新字段应使用 metav1.Duration。

字段描述
Duration [必填]
meta/v1.Duration

Duration 保存时长值

- [必需]
bool

SerializeAsString 控制值是序列化为字符串还是整数

TracingConfiguration

出现于

TracingConfiguration 提供 OpenTelemetry 跟踪客户端的版本化配置。

字段描述
endpoint
字符串

收集器的端点,此组件将把跟踪报告到该端点。连接不安全,目前不支持 TLS。建议取消设置,端点是 otlp grpc 默认值,localhost:4317。

samplingRatePerMillion
int32

SamplingRatePerMillion 是每百万跨度要收集的样本数。建议取消设置。如果取消设置,采样器会尊重其父跨度的采样率,但否则永远不会采样。

VModuleConfiguration

([]k8s.io/component-base/logs/api/v1.VModuleItem 的别名)

出现于

VModuleConfiguration 是单个文件名或模式及其相应详细程度阈值的集合。

VerbosityLevel

(uint32 的别名)

出现于

VerbosityLevel 代表 klog 或 logr 的详细程度阈值。

CredentialProviderConfig

CredentialProviderConfig 是包含每个 exec 凭据提供程序信息的配置。Kubelet 从磁盘读取此配置,并如 CredentialProvider 类型所指定的那样启用每个提供程序。

字段描述
apiVersion
字符串
kubelet.config.k8s.io/v1beta1
kind
字符串
CredentialProviderConfig
providers [必需]
[]CredentialProvider

providers 是 kubelet 将启用的凭据提供程序插件列表。多个提供程序可能与单个镜像匹配,在这种情况下,所有提供程序的凭据都将返回给 kubelet。如果为单个镜像调用了多个提供程序,结果将被合并。如果提供程序返回重叠的认证密钥,则首先尝试列表中靠前的提供程序提供的值。

ImagePullIntent

ImagePullIntent 是 kubelet 尝试拉取镜像的记录。

字段描述
apiVersion
字符串
kubelet.config.k8s.io/v1beta1
kind
字符串
ImagePullIntent
image [必填]
字符串

Image 是来自容器 image 字段的镜像规范。文件名为此值的 SHA-256 哈希值。这是为了避免文件名中出现 ':' 和 '/' 等不安全字符。

ImagePulledRecord

ImagePullRecord 是由 kubelet 拉取的镜像记录。

如果 kubernetesSecrets 字段中没有记录,且 nodeWideCredentialsanonymous 均为 false,则下次请求此记录代表的镜像时必须重新检查凭据。

字段描述
apiVersion
字符串
kubelet.config.k8s.io/v1beta1
kind
字符串
ImagePulledRecord
lastUpdatedTime [必填]
meta/v1.Time

LastUpdatedTime 是此记录上次更新的时间

imageRef [必填]
字符串

ImageRef 是从 CRI 接收到的对此文件所代表镜像的引用。文件名为此值的 SHA-256 哈希值。这是为了避免文件名中出现 ':' 和 '/' 等不安全字符。

credentialMapping [必填]
map[string]ImagePullCredentials

CredentialMapping 将 image 映射到之前拉取它时使用的凭据集。此处的 image 是 Pod 容器 image 字段的内容,且已移除标签/摘要。

示例:容器请求 hello-world:latest@sha256:91fb4b041da273d5a3273b6d587d62d518300a6ad268b28628f74997b93171b2 镜像: "credentialMapping": { "hello-world": { "nodePodsAccessible": true } }

KubeletConfiguration

KubeletConfiguration 包含 Kubelet 的配置

字段描述
apiVersion
字符串
kubelet.config.k8s.io/v1beta1
kind
字符串
KubeletConfiguration
enableServer [必填]
bool

enableServer 启用 Kubelet 的安全服务器。注意:Kubelet 的非安全端口由 readOnlyPort 选项控制。默认值:true

staticPodPath
字符串

staticPodPath 是包含要运行的本地(静态)Pod 的目录路径,或单个静态 Pod 文件的路径。默认值:""

podLogsDir
字符串

podLogsDir 是 kubelet 用来放置 Pod 日志文件的自定义根目录路径。默认值:"/var/log/pods/"。注意:不建议将临时文件夹用作日志目录,因为这可能会在许多地方导致意外行为。

syncFrequency
meta/v1.Duration

syncFrequency 是同步运行容器和配置之间的最大周期。默认值:"1m"

fileCheckFrequency
meta/v1.Duration

fileCheckFrequency 是检查配置文件新数据的时长。默认值:"20s"

httpCheckFrequency
meta/v1.Duration

httpCheckFrequency 是检查 HTTP 获取新数据的时长。默认值:"20s"

staticPodURL
字符串

staticPodURL 是访问要运行的静态 Pod 的 URL。默认值:""

staticPodURLHeader
map[string][]string

staticPodURLHeader 是访问 podURL 时使用的 HTTP 头切片映射。默认值:nil

address
字符串

address 是 Kubelet 服务监听的 IP 地址(设置为 0.0.0.0 以监听所有接口)。默认值:"0.0.0.0"

port
int32

port 是 Kubelet 服务监听的端口。端口号必须在 1 到 65535 之间(含)。默认值:10250

readOnlyPort
int32

readOnlyPort 是 Kubelet 服务监听的只读端口,无身份验证/授权。端口号必须在 1 到 65535 之间(含)。将此字段设置为 0 可禁用只读服务。默认值:0(禁用)

tlsCertFile
字符串

tlsCertFile 是包含 HTTPS 所需的 x509 证书的文件。(CA 证书如有,则连接在服务器证书之后)。如果未提供 tlsCertFile 和 tlsPrivateKeyFile,则会为公共地址生成自签名证书和密钥,并保存到传递给 Kubelet --cert-dir 标志的目录中。默认值:""

tlsPrivateKeyFile
字符串

tlsPrivateKeyFile 是包含与 tlsCertFile 匹配的 x509 私钥的文件。默认值:""

tlsCipherSuites
[]string

tlsCipherSuites 是服务器允许的加密套件列表。请注意,TLS 1.3 加密套件不可配置。值来自 tls 包常量 (https://golang.ac.cn/pkg/crypto/tls/#pkg-constants)。默认值:nil

tlsMinVersion
字符串

tlsMinVersion 是支持的最低 TLS 版本。值来自 tls 包常量 (https://golang.ac.cn/pkg/crypto/tls/#pkg-constants)。默认值:""

rotateCertificates
bool

rotateCertificates 启用客户端证书轮换。Kubelet 将向 certificates.k8s.io API 请求新证书。这需要审批者批准证书签名请求。默认值:false

serverTLSBootstrap
bool

serverTLSBootstrap 启用服务器证书引导。Kubelet 将向 'certificates.k8s.io' API 请求证书,而不是自签名服务证书。这需要审批者批准证书签名请求 (CSR)。设置此字段时必须启用 RotateKubeletServerCertificate 特性。默认值:false

authentication
KubeletAuthentication

authentication 指定如何对 Kubelet 服务器的请求进行身份验证。默认值:anonymous: enabled: false, webhook: enabled: true, cacheTTL: "2m"

authorization
KubeletAuthorization

authorization 指定如何对 Kubelet 服务器的请求进行授权。默认值:mode: Webhook, webhook: cacheAuthorizedTTL: "5m", cacheUnauthorizedTTL: "30s"

registryPullQPS
int32

registryPullQPS 是每秒注册表拉取的限制。该值不能为负数。设置为 0 表示不限制。默认值:5

registryBurst
int32

registryBurst 是并发拉取的最大突发大小,临时允许拉取次数达到此数值,同时仍不超过 registryPullQPS。该值不能为负数。仅在 registryPullQPS 大于 0 时使用。默认值:10

imagePullCredentialsVerificationPolicy
ImagePullCredentialsVerificationPolicy

imagePullCredentialsVerificationPolicy 决定当 Pod 请求节点上已存在的镜像时应如何验证凭据

  • NeverVerify
    • 节点上的任何人都可以使用节点上存在的任何镜像
  • NeverVerifyPreloadedImages
    • 由 kubelet 以外的程序拉取到节点的镜像可以在不重新验证拉取凭据的情况下使用
  • NeverVerifyAllowlistedImages
    • 类似于 "NeverVerifyPreloadedImages",但只有来自 preloadedImagesVerificationAllowlist 的节点镜像不需要重新验证
  • AlwaysVerify
    • 所有镜像都需要重新验证凭据
preloadedImagesVerificationAllowlist
[]string

preloadedImagesVerificationAllowlist 指定了对于 "NeverVerifyAllowlistedImages" imagePullCredentialsVerificationPolicy 豁免凭据重新验证的镜像列表。该列表接受完整路径段通配符后缀 "/*"。请仅使用不带镜像标签或摘要的镜像规范。

eventRecordQPS
int32

eventRecordQPS 是每秒创建事件的最大数量。如果为 0,则不执行任何限制。该值不能为负数。默认值:50

eventBurst
int32

eventBurst 是事件创建突发的最大大小,临时允许事件创建达到此数值,同时仍不超过 eventRecordQPS。该字段不能为负数,且仅在 eventRecordQPS > 0 时使用。默认值:100

enableDebuggingHandlers
bool

enableDebuggingHandlers 启用用于日志访问、本地运行容器和命令的服务器端点,包括 exec、attach、logs 和 portforward 特性。默认值:true

enableContentionProfiling
bool

如果 enableDebuggingHandlers 为 true,则 enableContentionProfiling 启用阻塞分析 (block profiling)。默认值:false

healthzPort
int32

healthzPort 是 localhost healthz 端点的端口(设置为 0 以禁用)。有效数字在 1 到 65535 之间。默认值:10248

healthzBindAddress
字符串

healthzBindAddress 是 healthz 服务器监听的 IP 地址。默认值:"127.0.0.1"

oomScoreAdj
int32

oomScoreAdj 是 kubelet 进程的 oom-score-adj 值。值必须在 [-1000, 1000] 范围内。默认值:-999

clusterDomain
字符串

clusterDomain 是此集群的 DNS 域名。如果设置,kubelet 将配置所有容器,使其除了主机的搜索域外,还搜索此域名。默认值:""

clusterDNS
[]string

clusterDNS 是集群 DNS 服务器的 IP 地址列表。如果设置,kubelet 将配置所有容器使用此地址进行 DNS 解析,而不是使用主机的 DNS 服务器。默认值:nil

streamingConnectionIdleTimeout
meta/v1.Duration

streamingConnectionIdleTimeout 是流式连接在自动关闭前可以空闲的最长时间。已弃用:不再有任何效果。默认值:"4h"

nodeStatusUpdateFrequency
meta/v1.Duration

nodeStatusUpdateFrequency 是 kubelet 计算节点状态的频率。如果未启用节点租约特性,这也是 kubelet 向 master 发布节点状态的频率。注意:未启用节点租约特性时,更改此常量需谨慎,它必须与 nodecontroller 中的 nodeMonitorGracePeriod 配合使用。默认值:"10s"

nodeStatusReportFrequency
meta/v1.Duration

nodeStatusReportFrequency 是当节点状态未改变时,kubelet 向 master 发布节点状态的频率。如果检测到任何变化,kubelet 将忽略此频率并立即发布节点状态。仅在启用节点租约特性时使用。nodeStatusReportFrequency 的默认值为 5m。但如果显式设置了 nodeStatusUpdateFrequency,则为了向后兼容,nodeStatusReportFrequency 的默认值将被设置为 nodeStatusUpdateFrequency。默认值:"5m"

nodeLeaseDurationSeconds
int32

nodeLeaseDurationSeconds 是 Kubelet 将在其对应租约 (Lease) 上设置的时长。NodeLease 通过让 Kubelet 在 kube-node-lease 命名空间中创建并定期续租(以节点命名)来指示节点健康状况。如果租约过期,节点可被视为不健康。根据 KEP-0009,租约目前每 10 秒续约一次。未来,续租间隔可能会根据租约时长来设置。该字段值必须大于 0。默认值:40

imageMinimumGCAge
meta/v1.Duration

imageMinimumGCAge 是未使用镜像在被垃圾回收前的最小期限。默认值:"2m"

imageMaximumGCAge
meta/v1.Duration

imageMaximumGCAge 是镜像在被垃圾回收前可以处于未使用状态的最大期限。此字段默认值为 "0s",即禁用此字段——意味着镜像不会因长时间未使用而被垃圾回收。默认值:"0s"(禁用)

imageGCHighThresholdPercent
int32

imageGCHighThresholdPercent 是触发镜像垃圾回收始终运行的磁盘使用百分比。百分比通过将此字段值除以 100 计算得出,因此此字段必须在 0 到 100 之间(含)。指定时,该值必须大于 imageGCLowThresholdPercent。默认值:85

imageGCLowThresholdPercent
int32

imageGCLowThresholdPercent 是在触发镜像垃圾回收之前从不运行的磁盘使用百分比。这是垃圾回收的目标磁盘使用量。百分比通过将此字段值除以 100 计算得出,因此字段值必须在 0 到 100 之间(含)。指定时,该值必须小于 imageGCHighThresholdPercent。默认值:80

volumeStatsAggPeriod
meta/v1.Duration

volumeStatsAggPeriod 是计算并缓存所有 Pod 卷磁盘使用情况的频率。默认值:"1m"

kubeletCgroups
字符串

kubeletCgroups 是用于隔离 kubelet 的 cgroups 绝对名称。默认值:""

systemCgroups
字符串

systemCgroups 是放置所有尚未在容器中的非内核进程的 cgroups 绝对名称。留空表示不在容器中。回退此标志需要重启。如果此字段不为空,则必须指定 cgroupRoot。默认值:""

cgroupRoot
字符串

cgroupRoot 是用于 Pod 的根 cgroup。这由容器运行时尽力而为地处理。

cgroupsPerQOS
bool

cgroupsPerQOS 启用基于 QoS 的 CGroup 层级结构:为 QoS 级别提供顶级 CGroup,并且所有 Burstable 和 BestEffort Pod 都在其特定的顶级 QoS CGroup 下启动。默认值:true

cgroupDriver
字符串

cgroupDriver 是 kubelet 用来在主机上操作 CGroup 的驱动程序 (cgroupfs 或 systemd)。默认值:"cgroupfs"

cpuManagerPolicy
字符串

cpuManagerPolicy 是要使用的策略名称。默认值:"None"

singleProcessOOMKill
bool

singleProcessOOMKill 如果为 true,将防止在 cgroups v2 中为容器 cgroup 设置 memory.oom.group 标志。这会导致容器中的进程被单独 OOM 杀死,而不是作为一个组被杀死。这意味着如果为 true,其行为将与 cgroups v1 的行为一致。未指定时自动确定默认值。在非 Linux(如 Windows)上,仅允许 null / 缺失。在 cgroup v1 Linux 上,仅允许 null / 缺失和 true。在 cgroup v2 Linux 上,允许 null / 缺失、true 和 false。默认值为 false。

cpuManagerPolicyOptions
map[string]string

cpuManagerPolicyOptions 是一组 key=value,允许设置额外选项来微调 CPU 管理策略的行为。默认值:nil

cpuManagerReconcilePeriod
meta/v1.Duration

cpuManagerReconcilePeriod 是 CPU 管理器的对账周期。默认值:"10s"

memoryManagerPolicy
字符串

memoryManagerPolicy 是内存管理器使用的策略名称。需要启用 MemoryManager 特性门控。默认值:"none"

topologyManagerPolicy
字符串

topologyManagerPolicy 是要使用的拓扑管理器策略名称。有效值包括:

  • restricted:kubelet 仅允许对所请求资源具有最佳 NUMA 节点对齐的 Pod;
  • best-effort:kubelet 将倾向于具有 CPU 和设备资源 NUMA 对齐的 Pod;
  • none:kubelet 不了解 Pod 的 CPU 和设备资源的 NUMA 对齐情况。
  • single-numa-node:kubelet 仅允许具有 CPU 和设备资源单 NUMA 对齐的 Pod。

默认值:"none"

topologyManagerScope
字符串

topologyManagerScope 代表拓扑管理器请求和提示提供者生成的拓扑提示生成范围。有效值包括:

  • container:拓扑策略按每个容器应用。
  • pod:拓扑策略按每个 Pod 应用。

默认值:"container"

topologyManagerPolicyOptions
map[string]string

TopologyManagerPolicyOptions 是一组 key=value,允许设置额外选项来微调拓扑管理器策略的行为。需要同时启用 "TopologyManager" 和 "TopologyManagerPolicyOptions" 特性门控。默认值:nil

qosReserved
map[string]string

qosReserved 是一组资源名称到百分比的对,指定保留供 Guaranteed QoS 级别独占使用的资源最小百分比。当前支持的资源:"memory"。需要启用 QOSReserved 特性门控。默认值:nil

runtimeRequestTimeout
meta/v1.Duration

runtimeRequestTimeout 是除长时间运行请求(pull、logs、exec 和 attach)之外的所有运行时请求的超时时间。默认值:"2m"

hairpinMode
字符串

hairpinMode 指定 Kubelet 应如何为发夹(hairpin)数据包配置容器网桥。设置此标志允许 Service 中的端点在尝试访问其自身 Service 时负载均衡回自身。值:

  • "promiscuous-bridge":使容器网桥处于混杂模式。
  • "hairpin-veth":在容器 veth 接口上设置 hairpin 标志。
  • "none":不执行任何操作。

通常,必须设置 --hairpin-mode=hairpin-veth 才能实现发夹 NAT,因为 promiscuous-bridge 假设存在名为 cbr0 的容器网桥。默认值:"promiscuous-bridge"

maxPods
int32

maxPods 是可以在此 Kubelet 上运行的最大 Pod 数量。值必须是非负整数。默认值:110

podCIDR
字符串

podCIDR 是用于 Pod IP 地址的 CIDR,仅在独立模式下使用。在集群模式下,这是从控制平面获取的。默认值:""

podPidsLimit
int64

podPidsLimit 是任何 Pod 中的最大 PID 数量。默认值:-1

resolvConf
字符串

resolvConf 是用作容器 DNS 解析配置基础的解析器配置文件。如果设置为空字符串,将覆盖默认值并有效地禁用 DNS 查找。默认值:"/etc/resolv.conf"

runOnce
bool

runOnce 使 Kubelet 向 API 服务器检查一次 Pod,运行这些 Pod 以及静态 Pod 文件指定的 Pod,然后退出。默认值:false

cpuCFSQuota
bool

cpuCFSQuota 为指定 CPU 限制的容器启用 CPU CFS 配额强制执行。默认值:true

cpuCFSQuotaPeriod
meta/v1.Duration

cpuCFSQuotaPeriod 是 CPU CFS 配额周期值,cpu.cfs_period_us。值必须在 1 毫秒到 1 秒之间(含)。需要启用 CustomCPUCFSQuotaPeriod 特性门控。默认值:"100ms"

nodeStatusMaxImages
int32

nodeStatusMaxImages 限制 Node.status.images 中报告的镜像数量。该值必须大于 -2。注意:如果指定 -1,则不应用限制。如果指定 0,则不返回镜像。默认值:50

maxOpenFiles
int64

maxOpenFiles 是 Kubelet 进程可以打开的文件数量。值必须是非负数。默认值:1000000

contentType
字符串

contentType 是发送到 apiserver 的请求的内容类型。默认值:"application/vnd.kubernetes.protobuf"

kubeAPIQPS
int32

kubeAPIQPS 是与 kubernetes apiserver 通信时使用的 QPS。默认值:50

kubeAPIBurst
int32

kubeAPIBurst 是与 kubernetes API 服务器通信时允许的突发量。该字段不能为负数。默认值:100

serializeImagePulls
bool

serializeImagePulls 启用时,告诉 Kubelet 每次只拉取一个镜像。我们建议不要在运行 Docker 守护进程版本 < 1.9 或使用 Aufs 存储后端的节点上更改默认值。问题 #10959 提供了更多详细信息。默认值:true

maxParallelImagePulls
int32

MaxParallelImagePulls 设置并行拉取镜像的最大数量。如果 SerializeImagePulls 为 true,则不能设置此字段。将其设置为 nil 表示不限制。默认值:nil

evictionHard
map[string]string

evictionHard 是信号名称到数量的映射,定义了硬驱逐阈值。例如:{"memory.available": "300Mi"}。要显式禁用,请在任意资源上通过 0% 或 100% 的阈值。默认值:memory.available: "100Mi", nodefs.available: "10%", nodefs.inodesFree: "5%", imagefs.available: "15%"

evictionSoft
map[string]string

evictionSoft 是信号名称到数量的映射,定义了软驱逐阈值。例如:{"memory.available": "300Mi"}。默认值:nil

evictionSoftGracePeriod
map[string]string

evictionSoftGracePeriod 是信号名称到数量的映射,定义了每个软驱逐信号的宽限期。例如:{"memory.available": "30s"}。默认值:nil

evictionPressureTransitionPeriod
meta/v1.Duration

evictionPressureTransitionPeriod 是 kubelet 在退出驱逐压力状态前必须等待的时长。0s 的时长将被转换为默认值 5m。默认值:"5m"

evictionMaxPodGracePeriod
int32

evictionMaxPodGracePeriod 是响应满足软驱逐阈值而终止 Pod 时允许使用的最大宽限期(以秒为单位)。此值有效地限制了软驱逐期间 Pod 的 terminationGracePeriodSeconds 值。默认值:0

evictionMinimumReclaim
map[string]string

evictionMinimumReclaim 是信号名称到数量的映射,定义了最小回收量,描述了在资源面临压力执行 Pod 驱逐时,kubelet 将回收的给定资源的最小数量。例如:{"imagefs.available": "2Gi"}。默认值:nil

mergeDefaultEvictionSettings
bool

mergeDefaultEvictionSettings 指示 evictionHard、evictionSoft、evictionSoftGracePeriod 和 evictionMinimumReclaim 字段的默认值应合并到此配置中为这些字段指定的值。此配置中指定的信号具有优先级。此配置中未指定的信号继承其默认值。如果为 false,且此配置中指定了任何信号,则未在此配置中指定的其他信号将被设置为 0。它适用于合并存在默认值的字段,目前只有 evictionHard 有默认值。默认值:false

podsPerCore
int32

podsPerCore 是每个核心的最大 Pod 数量。不能超过 maxPods。该值必须是非负整数。如果为 0,则不限制 Pod 数量。默认值:0

enableControllerAttachDetach
bool

enableControllerAttachDetach 启用 Attach/Detach 控制器来管理调度到此节点的卷的挂载/卸载,并禁用 kubelet 执行任何挂载/卸载操作。注意:kubelet 不支持挂载/卸载 CSI 卷,因此在这种用例下此选项需要为 true。默认值:true

protectKernelDefaults
bool

protectKernelDefaults 如果为 true,则在内核参数不符合预期时导致 Kubelet 报错。否则,Kubelet 将尝试修改内核参数以符合其预期。默认值:false

makeIPTablesUtilChains
bool

makeIPTablesUtilChains 如果为 true,导致 Kubelet 在 iptables 中创建 KUBE-IPTABLES-HINT 链,作为对系统中其他组件关于 iptables 配置的提示。默认值:true

iptablesMasqueradeBit
int32

iptablesMasqueradeBit 以前控制 KUBE-MARK-MASQ 链的创建。已弃用:不再有任何效果。默认值:14

iptablesDropBit
int32

iptablesDropBit 以前控制 KUBE-MARK-DROP 链的创建。已弃用:不再有任何效果。默认值:15

featureGates
map[string]bool

featureGates 是功能名称到布尔值的映射,用于启用或禁用实验性功能。此字段逐项修改 "k8s.io/kubernetes/pkg/features/kube_features.go" 中的内置默认值。默认值:nil

failSwapOn
bool

failSwapOn 告诉 Kubelet 如果节点上启用了交换分区,则启动失败。默认值:true

memorySwap
MemorySwapConfiguration

memorySwap 配置容器工作负载可用的交换内存。

containerLogMaxSize
字符串

containerLogMaxSize 是定义容器日志文件在轮换前的最大大小的数量。例如:"5Mi" 或 "256Ki"。默认值:"10Mi"

containerLogMaxFiles
int32

containerLogMaxFiles 指定一个容器可以存在的最大容器日志文件数量。默认值:5

containerLogMaxWorkers
int32

ContainerLogMaxWorkers 指定为执行日志轮换操作而生成的最大并发工作线程数。将此数值设置为 1 以禁用并发日志轮换工作流。默认值:1

containerLogMonitorInterval
meta/v1.Duration

ContainerLogMonitorInterval 指定监视容器日志以执行日志轮换操作的时长。默认为 10 * time.Seconds。但可以根据日志生成速率和所需轮换的大小自定义为较小的值。默认值:10s

configMapAndSecretChangeDetectionStrategy
ResourceChangeDetectionStrategy

configMapAndSecretChangeDetectionStrategy 是 ConfigMap 和 Secret 管理器运行的模式。有效值包括:

  • Get:kubelet 直接从 API 服务器获取所需对象;
  • Cache:kubelet 对从 API 服务器获取的对象使用 TTL 缓存;
  • Watch:kubelet 使用 watch 来观察其感兴趣的对象更改。

默认值:"Watch"

systemReserved
map[string]string

systemReserved 是一组 ResourceName=ResourceQuantity(例如 cpu=200m,memory=150G)对,描述为非 kubernetes 组件保留的资源。目前仅支持 cpu 和 memory。有关更多详细信息,请参阅 https://kubernetes.ac.cn/docs/tasks/administer-cluster/reserve-compute-resources。默认值:nil

kubeReserved
map[string]string

kubeReserved 是一组 ResourceName=ResourceQuantity(例如 cpu=200m,memory=150G)对,描述为 kubernetes 系统组件保留的资源。目前支持 cpu、memory 和根文件系统的本地存储。有关更多详细信息,请参阅 https://kubernetes.ac.cn/docs/tasks/administer-cluster/reserve-compute-resources。默认值:nil

reservedSystemCPUs [必填]
字符串

reservedSystemCPUs 选项指定为主机级系统线程和 kubernetes 相关线程保留的 CPU 列表。这提供了“静态”CPU 列表,而不是 systemReserved 和 kubeReserved 提供的“动态”列表。此选项不支持 systemReservedCgroup 或 kubeReservedCgroup。

showHiddenMetricsForVersion
字符串

showHiddenMetricsForVersion 是你想要显示隐藏指标的上一个版本。只有上一个次要版本是有意义的,不允许其他值。格式为 <major>.<minor>,例如:1.16。此格式的目的是确保你有机会注意到下个版本是否隐藏了额外的指标,而不是在之后版本中它们被永久移除时感到意外。默认值:""

systemReservedCgroup
字符串

systemReservedCgroup 帮助 kubelet 识别顶级 CGroup 的绝对名称,用于对操作系统系统守护进程强制执行 systemReserved 计算资源保留。有关更多信息,请参阅 节点可分配资源 (Node Allocatable) 文档。默认值:""

kubeReservedCgroup
字符串

kubeReservedCgroup 帮助 kubelet 识别顶级 CGroup 的绝对名称,用于对 Kubernetes 节点系统守护进程强制执行 KubeReserved 计算资源保留。有关更多信息,请参阅 节点可分配资源 (Node Allocatable) 文档。默认值:""

enforceNodeAllocatable
[]string

此标志指定 Kubelet 需要执行的各种节点可分配资源强制执行。此标志接受一个选项列表。可接受的选项为 nonepodssystem-reservedkube-reserved。如果指定了 none,则不能指定其他选项。当列表中包含 system-reserved 时,必须指定 systemReservedCgroup。当列表中包含 kube-reserved 时,必须指定 kubeReservedCgroup。仅当 cgroupsPerQOS 设置为 true 时支持此字段。有关更多信息,请参阅 节点可分配资源 (Node Allocatable)。默认值:["pods"]

allowedUnsafeSysctls
[]string

逗号分隔的不安全 sysctl 或 sysctl 模式(以 * 结尾)的白名单。不安全 sysctl 组包括 kernel.shm*kernel.msg*kernel.semfs.mqueue.*net.*。例如:"kernel.msg*,net.ipv4.route.min_pmtu"。默认值:[]

volumePluginDir
字符串

volumePluginDir 是搜索额外第三方卷插件的目录全路径。默认值:"/usr/libexec/kubernetes/kubelet-plugins/volume/exec/"

providerID
字符串

providerID 如果设置,则设置实例的唯一 ID,外部提供商(即云提供商)可以使用该 ID 识别特定节点。默认值:""

kernelMemcgNotification
bool

kernelMemcgNotification 如果设置,指示 kubelet 与内核 memcg 通知集成,以确定是否超过内存驱逐阈值,而不是通过轮询。默认值:false

logging [必填]
LoggingConfiguration

logging 指定日志选项。有关更多信息,请参阅 日志选项 (Logs Options)。默认值:Format: text

enableSystemLogHandler
bool

enableSystemLogHandler 通过 Web 界面 host:port/logs/ 启用系统日志。默认值:true

enableSystemLogQuery
bool

enableSystemLogQuery 在 /logs 端点上启用节点日志查询功能。要使此功能工作,还必须启用 EnableSystemLogHandler。启用此功能具有安全影响。建议根据调试需要启用它,否则禁用。默认值:false

shutdownGracePeriod
meta/v1.Duration

shutdownGracePeriod 指定节点应延迟关机的总时长,以及节点关机期间 Pod 终止的总宽限期。默认值:"0s"

shutdownGracePeriodCriticalPods
meta/v1.Duration

shutdownGracePeriodCriticalPods 指定节点关机期间用于终止关键 (critical) Pod 的时长。这应该小于 shutdownGracePeriod。例如,如果 shutdownGracePeriod=30s 且 shutdownGracePeriodCriticalPods=10s,则在节点关机期间,前 20 秒将保留用于优雅地终止普通 Pod,最后 10 秒将保留用于终止关键 Pod。默认值:"0s"

shutdownGracePeriodByPodPriority
[]ShutdownGracePeriodByPodPriority

shutdownGracePeriodByPodPriority 根据 Pod 关联的优先级类值指定 Pod 的关机宽限期。收到关机请求后,Kubelet 将开始关闭节点上运行的所有 Pod,宽限期取决于 Pod 的优先级,然后等待所有 Pod 退出。数组中的每个条目代表当节点关机时,优先级类值处于该值与列表中下一个更高条目之间范围内的 Pod 的优雅关机时间。例如,允许关键 Pod 10s 关机,priority>=10000 的 Pod 20s 关机,其余所有 Pod 30s 关机。

shutdownGracePeriodByPodPriority

  • priority: 2000000000 shutdownGracePeriodSeconds: 10
  • priority: 10000 shutdownGracePeriodSeconds: 20
  • priority: 0 shutdownGracePeriodSeconds: 30

Kubelet 退出前等待的时间最多是节点上代表的每个优先级类范围的所有 shutdownGracePeriodSeconds 的最大值。当所有 Pod 都已退出或达到其宽限期时,Kubelet 将释放关机抑制锁。需要启用 GracefulNodeShutdown 特性门控。如果设置了 ShutdownGracePeriod 或 ShutdownGracePeriodCriticalPods,则此配置必须为空。默认值:nil

crashLoopBackOff
CrashLoopBackOffConfig

CrashLoopBackOff 包含修改容器重启行为节点级参数的配置

reservedMemory
[]MemoryReservation

reservedMemory 指定 NUMA 节点的内存保留逗号分隔列表。该参数仅在内存管理器特性的背景下有意义。内存管理器不会为容器工作负载分配保留内存。例如,如果您有一个具有 10Gi 内存的 NUMA0,并且 reservedMemory 指定在 NUMA0 保留 1Gi 内存,则内存管理器将假设只有 9Gi 可用于分配。您可以指定不同数量的 NUMA 节点和内存类型。您可以完全省略此参数,但您应该意识到,所有 NUMA 节点的保留内存总量应等于 节点可分配资源 (node allocatable) 指定的内存量。如果至少有一个节点可分配资源参数具有非零值,则您需要指定至少一个 NUMA 节点。此外,请避免指定:

  1. 重复项:相同的 NUMA 节点和内存类型,但值不同。
  2. 任何内存类型的零限制。
  3. 机器上不存在的 NUMA 节点 ID。
  4. 除 memory 和 hugepages- 之外的内存类型

默认值:nil

enableProfilingHandler
bool

enableProfilingHandler 通过 Web 界面 host:port/debug/pprof/ 启用分析功能。默认值:true

enableDebugFlagsHandler
bool

enableDebugFlagsHandler 通过 Web 界面 host:port/debug/flags/v 启用标志 (flags) 端点。默认值:true

seccompDefault
bool

SeccompDefault 启用将 RuntimeDefault 作为所有工作负载的默认 seccomp 配置文件。默认值:false

memoryThrottlingFactor
float64

MemoryThrottlingFactor 指定在设置 cgroupv2 memory.high 值以强制执行 MemoryQoS 时,乘以内存限制或节点可分配内存的因子。减小此因子将为容器 cgroup 设置较低的高水位限制并施加更重的回收压力,而增大则会减轻回收压力。有关更多详细信息,请参阅 https://kep.k8s.io/2570。默认值:0.9

registerWithTaints
[]core/v1.Taint

registerWithTaints 是在 kubelet 注册自身时要添加到节点对象的一组污点 (taints)。这仅在 registerNode 为 true 且在节点初始注册时生效。默认值:nil

registerNode
bool

registerNode 启用向 apiserver 自动注册。默认值:true

tracing
TracingConfiguration

Tracing 指定 OpenTelemetry 跟踪客户端的版本化配置。有关更多详细信息,请参阅 https://kep.k8s.io/2832。默认值:nil

localStorageCapacityIsolation
bool

LocalStorageCapacityIsolation 启用本地临时存储隔离功能。默认设置为 true。此功能允许用户为容器的临时存储设置 request/limit,并以类似于 CPU 和内存的方式进行管理。它还允许为 emptyDir 卷设置 sizeLimit,如果卷的磁盘使用量超过限制,将触发 Pod 驱逐。此功能取决于检测正确根文件系统磁盘使用情况的能力。对于某些系统,如 kind rootless,如果无法支持此能力,则应禁用 LocalStorageCapacityIsolation 功能。一旦禁用,用户不应为容器的临时存储设置 request/limit,或为 emptyDir 设置 sizeLimit。默认值:true

containerRuntimeEndpoint [必填]
字符串

ContainerRuntimeEndpoint 是容器运行时的端点。Linux 支持 Unix 域套接字,而 Windows 支持 npipe 和 TCP 端点。示例:'unix:///path/to/runtime.sock', 'npipe:////./pipe/runtime'

imageServiceEndpoint
字符串

ImageServiceEndpoint 是容器镜像服务的端点。Linux 支持 Unix 域套接字,而 Windows 支持 npipe 和 TCP 端点。示例:'unix:///path/to/runtime.sock', 'npipe:////./pipe/runtime'。如果未指定,则使用 containerRuntimeEndpoint 中的值。

failCgroupV1
bool

FailCgroupV1 防止 kubelet 在使用 cgroup v1 的主机上启动。默认情况下,此项设置为 'true',这意味着除非显式禁用此选项,否则 kubelet 将不会在 cgroup v1 主机上启动。默认值:true

userNamespaces
UserNamespaces

UserNamespaces 包含用户命名空间 (User Namespace) 配置。

SerializedNodeConfigSource

SerializedNodeConfigSource 允许我们序列化 v1.NodeConfigSource。此类型由 Kubelet 内部用于跟踪检查点动态配置。它存在于 kubeletconfig API 组中,因为它被归类为 Kubelet 的版本化输入。

字段描述
apiVersion
字符串
kubelet.config.k8s.io/v1beta1
kind
字符串
SerializedNodeConfigSource
source
core/v1.NodeConfigSource

source 是我们正在序列化的源。

CrashLoopBackOffConfig

出现于

字段描述
maxContainerRestartPeriod
meta/v1.Duration

maxContainerRestartPeriod 是容器重启退避延迟可以累计的最大时长,最小 1 秒,最大 300 秒。如果未设置,则默认为内部 crashloopbackoff 最大值 (300s)。

CredentialProvider

出现于

CredentialProvider 代表 kubelet 将调用的 exec 插件。仅当正在拉取的镜像与插件处理的镜像匹配(请参阅 matchImages)时,才会调用该插件。

字段描述
name [必需]
字符串

name 是凭据提供程序所需的名称。它必须与 kubelet 看到的提供程序可执行文件的名称匹配。可执行文件必须位于 kubelet 的 bin 目录中(由 --image-credential-provider-bin-dir 标志设置)。要求在所有提供程序中是唯一的。

matchImages [必需]
[]string

matchImages 是用于匹配镜像的必需字符串列表,以确定是否应调用此提供程序。如果其中一个字符串与来自 kubelet 的请求镜像匹配,则将调用该插件并有机会提供凭据。镜像预计包含注册表域名和 URL 路径。

matchImages 中的每个条目都是一个模式,可以可选地包含端口和路径。域名中可以使用通配符,但端口或路径中不能使用。通配符支持作为子域名(如 '.k8s.io' 或 'k8s..io')以及顶级域名(如 'k8s.')。也支持匹配部分子域名(如 'app.k8s.io')。每个通配符只能匹配单个子域名段,因此 *.io 不匹配 *.k8s.io。

当镜像与 matchImage 存在匹配时,必须满足以下所有条件

  • 两者包含相同数量的域部分,并且每个部分匹配。
  • imageMatch 的 URL 路径必须是目标镜像 URL 路径的前缀。
  • 如果 imageMatch 包含端口,则镜像中的端口也必须匹配。

matchImages 的示例值

  • 123456789.dkr.ecr.us-east-1.amazonaws.com
  • *.azurecr.io
  • gcr.io
  • ..registry.io
  • registry.io:8080/path
defaultCacheDuration [必需]
meta/v1.Duration

defaultCacheDuration 是插件将在内存中缓存凭据的默认持续时间,如果插件响应中未提供缓存持续时间。此字段是必需的。

apiVersion [必需]
字符串

所需的 exec CredentialProviderRequest 输入版本。返回的 CredentialProviderResponse 必须使用与输入相同的编码版本。当前支持的值是

  • credentialprovider.kubelet.k8s.io/v1beta1
args
[]string

在执行时传递给命令的参数。

env
[]ExecEnvVar

Env 定义要暴露给进程的附加环境变量。这些环境变量与主机环境以及 client-go 用于将参数传递给插件的环境变量合并。

ExecEnvVar

出现于

ExecEnvVar 用于在执行基于 exec 的凭据插件时设置环境变量。

字段描述
name [必需]
字符串
未提供描述。
value [必需]
字符串
未提供描述。

ImagePullCredentials

出现于

ImagePullCredentials 描述了可用于拉取镜像的凭据。

字段描述
kubernetesSecrets
[]ImagePullSecret

KubernetesSecretCoordinates 是用于拉取镜像的所有 kubernetes secret 坐标的索引。

kubernetesServiceAccounts
[]ImagePullServiceAccount

KubernetesServiceAccounts 是用于拉取镜像的所有 kubernetes service account 坐标的索引。

nodePodsAccessible
bool

NodePodsAccessible 是一个标志,表示拉取凭据可供节点上的所有 Pod 访问,或者拉取不需要凭据。

如果为 true,它与 kubernetesSecrets 字段互斥。

ImagePullCredentialsVerificationPolicy

(string 的别名)

出现于

ImagePullCredentialsVerificationPolicy 是一个枚举,用于定义当 Pod 请求系统中已存在的镜像时强制执行的策略

ImagePullSecret

出现于

ImagePullSecret 是 Kubernetes secret 对象坐标的表示,以及此对象包含的拉取 secret 凭据的凭据哈希值。

字段描述
uid [必填]
字符串
未提供描述。
namespace [必填]
字符串
未提供描述。
name [必需]
字符串
未提供描述。
credentialHash [必填]
字符串

CredentialHash 是通过对由 UID/Namespace/Name 坐标指定的 secret 的镜像拉取凭据内容进行哈希处理而检索到的 SHA-256 值。

ImagePullServiceAccount

出现于

ImagePullServiceAccount 是 Kubernetes service account 对象坐标的表示,kubelet 为其向凭据提供程序插件发送了 service account token 以获取镜像拉取凭据。

字段描述
uid [必填]
字符串
未提供描述。
namespace [必填]
字符串
未提供描述。
name [必需]
字符串
未提供描述。

KubeletAnonymousAuthentication

出现于

字段描述
enabled
bool

enabled 允许对 kubelet 服务器进行匿名请求。未被其他身份验证方法拒绝的请求将被视为匿名请求。匿名请求的用户名是 system:anonymous,组名为 system:unauthenticated

KubeletAuthentication

出现于

字段描述
x509
KubeletX509Authentication

x509 包含与 x509 客户端证书身份验证相关的设置。

webhook
KubeletWebhookAuthentication

webhook 包含与 Webhook 持票人令牌 (bearer token) 身份验证相关的设置。

anonymous
KubeletAnonymousAuthentication

anonymous 包含与匿名身份验证相关的设置。

KubeletAuthorization

出现于

字段描述
mode
KubeletAuthorizationMode

mode 是应用于对 kubelet 服务器请求的授权模式。有效值为 AlwaysAllowWebhook。Webhook 模式使用 SubjectAccessReview API 来确定授权。

webhook
KubeletWebhookAuthorization

webhook 包含与 Webhook 授权相关的设置。

KubeletAuthorizationMode

(string 的别名)

出现于

KubeletWebhookAuthentication

出现于

字段描述
enabled
bool

enabled 允许由 tokenreviews.authentication.k8s.io API 支持的持票人令牌身份验证。

cacheTTL
meta/v1.Duration

cacheTTL 启用身份验证结果的缓存

KubeletWebhookAuthorization

出现于

字段描述
cacheAuthorizedTTL
meta/v1.Duration

cacheAuthorizedTTL 是缓存来自 Webhook 授权者的“已授权”响应的时长。

cacheUnauthorizedTTL
meta/v1.Duration

cacheUnauthorizedTTL 是缓存来自 Webhook 授权者的“未授权”响应的时长。

KubeletX509Authentication

出现于

字段描述
clientCAFile
字符串

clientCAFile 是 PEM 编码的证书包的路径。如果设置,任何提供由包中颁发机构之一签名的客户端证书的请求都将使用对应于 CommonName 的用户名和对应于客户端证书中 Organization 的组进行身份验证。

MemoryReservation

出现于

MemoryReservation 为每个 NUMA 节点指定不同类型的内存保留

字段描述
numaNode [必填]
int32
未提供描述。
limits [必填]
core/v1.ResourceList
未提供描述。

MemorySwapConfiguration

出现于

字段描述
swapBehavior
字符串

swapBehavior 配置容器工作负载可用的交换内存。可以是 "", "NoSwap": 工作负载不能使用交换内存,默认选项;"LimitedSwap": 工作负载交换内存使用受到限制。交换内存限制与容器的内存请求成比例。

ResourceChangeDetectionStrategy

(string 的别名)

出现于

ResourceChangeDetectionStrategy 表示内部管理器(secret、configmap)发现对象更改的模式。

ShutdownGracePeriodByPodPriority

出现于

ShutdownGracePeriodByPodPriority 根据 Pod 关联的优先级类值指定 Pod 的关机宽限期

字段描述
priority [必填]
int32

priority 是与关机宽限期关联的优先级值

shutdownGracePeriodSeconds [必填]
int64

shutdownGracePeriodSeconds 是关机宽限期(秒)

UserNamespaces

出现于

UserNamespaces 包含用户命名空间 (User Namespace) 配置。

字段描述
idsPerPod
int64

IDsPerPod 是 UID 和 GID 的映射长度。长度必须是 65536 的倍数,并且必须小于 1<<32。在非 Linux(如 Windows)上,仅允许 null / 缺失。

更改此值可能需要重新创建节点上的所有容器。

默认值:65536

本页面是自动生成的。

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

最后修改于 2025 年 12 月 21 日 8:51 PM PST:Update config API reference for v1.35 release (efb02468c4)