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 [必需]
string

Format Flag 指定日志消息的结构。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 设置使用分流流时信息流的大小。默认值为零,表示禁用缓冲。仅在启用了 LoggingAlphaOptions 功能门控时可用。

TextOptions

出现在

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

字段描述
OutputRoutingOptions [必需]
OutputRoutingOptions
(OutputRoutingOptions 的成员嵌入到此类型中。) 未提供描述。

TimeOrMetaDuration

出现在

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

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

Duration 包含持续时间。

- [必填]
bool

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

TracingConfiguration

出现在

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

字段描述
endpoint
string

此组件将跟踪报告到的收集器的端点。连接是不安全的,目前不支持 TLS。推荐的做法是将其设置为空,端点为 otlp grpc 默认值 localhost:4317。

samplingRatePerMillion
int32

SamplingRatePerMillion 是每百万个 span 收集的样本数。推荐的做法是将其设置为空。如果设置为空,则采样器将尊重其父 span 的采样率,但否则永远不会进行采样。

VModuleConfiguration

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

出现在

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

VerbosityLevel

(uint32 的别名)

出现在

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

CredentialProviderConfig

CredentialProviderConfig 是包含每个执行凭证提供者信息的配置。Kubelet 从磁盘读取此配置,并根据 CredentialProvider 类型启用每个提供者。

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

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

KubeletConfiguration

KubeletConfiguration 包含 Kubelet 的配置。

字段描述
apiVersion
string
kubelet.config.k8s.io/v1beta1
kind
string
KubeletConfiguration
enableServer [必需]
bool

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

staticPodPath
string

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

podLogsDir
string

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
string

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

staticPodURLHeader
map[string][]string

staticPodURLHeader 是一个 map,其中包含访问 podURL 时使用的 HTTP 标头的切片。默认值:nil

address
string

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
string

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

tlsPrivateKeyFile
string

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

tlsCipherSuites
[]string

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

tlsMinVersion
string

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

enableContentionProfiling 如果 enableDebuggingHandlers 为 true,则启用阻塞分析。

healthzPort
int32

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

healthzBindAddress
string

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

oomScoreAdj
int32

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

clusterDomain
string

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

clusterDNS
[]string

clusterDNS 是集群 DNS 服务器的 IP 地址列表。如果设置,kubelet 将配置所有容器使用此 DNS 服务器进行 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
string

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

systemCgroups
string

systemCgroups 是 cgroups 的绝对名称,所有未包含在容器中的非内核进程都将放入其中。为空表示不进行容器化。回滚此标志需要重启。如果此字段非空,则必须指定 cgroupRoot。默认值:""

cgroupRoot
string

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

cgroupsPerQOS
bool

cgroupsPerQOS 启用基于 QoS 的 CGroup 层级结构:为 QoS 类别设置顶层 CGroups,并将所有 Burstable 和 BestEffort Pod 置于其特定的顶层 QoS CGroup 下。默认值:true

cgroupDriver
string

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

cpuManagerPolicy
string

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

singleProcessOOMKill
bool

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

cpuManagerPolicyOptions
map[string]string

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

cpuManagerReconcilePeriod
meta/v1.Duration

cpuManagerReconcilePeriod 是 CPU Manager 的协调周期。默认值:"10s"

memoryManagerPolicy
string

memoryManagerPolicy 是 memory manager 使用的策略名称。需要启用 MemoryManager 功能门控。默认值:"none"

topologyManagerPolicy
string

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

  • restricted:kubelet 只允许具有请求资源最优 NUMA 对齐的 Pod;
  • best-effort:kubelet 将偏好具有 CPU 和设备资源 NUMA 对齐的 Pod;
  • none:kubelet 对 Pod 的 CPU 和设备资源的 NUMA 对齐没有感知。
  • single-numa-node:kubelet 只允许具有单个 NUMA 对齐的 CPU 和设备资源的 Pod。

默认值:"none"

topologyManagerScope
string

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

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

默认值:"container"

topologyManagerPolicyOptions
map[string]string

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

qosReserved
map[string]string

qosReserved 是资源名称到百分比对的集合,指定为保证 QoS 级别保留的最小资源百分比。当前支持的资源:"memory" 需要启用 QOSReserved 功能门控。默认值:nil

runtimeRequestTimeout
meta/v1.Duration

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

hairpinMode
string

hairpinMode 指定 Kubelet 应如何配置容器网桥以处理 hairpin 数据包。设置此标志允许服务中的端点将流量负载均衡回自身,如果它们尝试访问自己的服务。值:

  • "promiscuous-bridge":使容器网桥处于混杂模式。
  • "hairpin-veth":在容器 veth 接口上设置 hairpin 标志。
  • "none":什么也不做。

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

maxPods
int32

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

podCIDR
string

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

podPidsLimit
int64

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

resolvConf
string

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

runOnce
bool

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

cpuCFSQuota
bool

cpuCFSQuota 启用 CPU CFS 配额强制执行,用于指定 CPU 限制的容器。默认值: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
string

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

kubeAPIQPS
int32

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

kubeAPIBurst
int32

kubeAPIBurst 是与 kubernetes API server 通信时允许的突发流量。此字段不能为负数。默认值:100

serializeImagePulls
bool

serializeImagePulls 启用时,指示 Kubelet 逐个拉取镜像。我们建议不要在运行版本小于 1.9 的 docker daemon 或使用 Aufs 存储后端的节点上更改默认值。Issue #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 是信号名称到数量的映射,定义了最小的回收量,描述了当资源面临压力时,kubelet 在执行 Pod 驱逐时将回收的给定资源的最小量。例如:{"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 执行任何挂载/卸载操作。注意:CSI 卷的挂载/卸载不受 kubelet 支持,因此在此用例中,此选项必须为 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,如果节点上启用了 swap,则启动失败。默认值:true

memorySwap
MemorySwapConfiguration

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

containerLogMaxSize
string

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 使用 TTL 缓存从 API 服务器获取的对象;
  • Watch:kubelet 使用 watches 来观察其感兴趣的对象的变化。

默认值:"Watch"

systemReserved
map[string]string

systemReserved 是资源名称=资源数量(例如 cpu=200m,memory=150G)对的集合,描述了为非 kubernetes 组件保留的资源。目前只支持 cpu 和 memory。更多详情请参阅 https://kubernetes.ac.cn/docs/tasks/administer-cluster/reserve-compute-resources。默认值:nil

kubeReserved
map[string]string

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

reservedSystemCPUs [必需]
string

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

showHiddenMetricsForVersion
string

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

systemReservedCgroup
string

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

kubeReservedCgroup
string

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

enforceNodeAllocatable
[]string

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

allowedUnsafeSysctls
[]string

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

volumePluginDir
string

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

providerID
string

providerID,如果设置,则设置实例的唯一 ID,外部提供程序(即 cloudprovider)可以使用此 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 指定在节点关闭期间终止关键 Pod 的持续时间。此值应小于 shutdownGracePeriod。例如,如果 shutdownGracePeriod=30s,shutdownGracePeriodCriticalPods=10s,则在节点关闭时,前 20 秒将用于正常终止普通 Pod,最后 10 秒将用于终止关键 Pod。默认值:"0s"

shutdownGracePeriodByPodPriority
[]ShutdownGracePeriodByPodPriority

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

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 节点的内存保留的逗号分隔列表。该参数仅在内存管理器功能的上下文中才有意义。内存管理器不会为容器工作负载分配保留内存。例如,如果您有一个 NUMA0 且拥有 10Gi 内存,并且 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 时,乘以内存限制或节点分配内存的因子。减小此因子会为容器 cgroups 设置更低的高限制并施加更重的回收压力,而增加会施加较少的回收压力。更多详细信息请参阅 https://kep.k8s.io/2570。默认值:0.9

registerWithTaints
[]core/v1.Taint

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

registerNode
bool

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

tracing
TracingConfiguration

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

localStorageCapacityIsolation
bool

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

containerRuntimeEndpoint [必需]
string

ContainerRuntimeEndpoint 是容器运行时的端点。Linux 支持 Unix Domain Sockets,而 Windows 支持 npipe 和 tcp 端点。例如:'unix:///path/to/runtime.sock','npipe:////./pipe/runtime'

imageServiceEndpoint
string

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

failCgroupV1
bool

FailCgroupV1 可阻止 kubelet 在使用 cgroup v1 的主机上启动。默认情况下,此选项设置为 'false',表示除非显式启用,否则允许 kubelet 在 cgroup v1 主机上启动。默认值:false

userNamespaces
UserNamespaces

UserNamespaces 包含 User Namespace 配置。

SerializedNodeConfigSource

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

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

source 是我们要序列化的源。

CrashLoopBackOffConfig

出现在

字段描述
maxContainerRestartPeriod
meta/v1.Duration

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

CredentialProvider

出现在

CredentialProvider 表示一个由 kubelet 调用的执行插件。仅当正在拉取的镜像与该插件处理的镜像匹配时(请参见 matchImages),才会调用该插件。

字段描述
name [必填]
string

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

matchImages [必需]
[]string

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

matchImages 中的每个条目都是一个模式,可以包含端口和路径。可以在域中使用 glob,但在端口或路径中不行。Glob 支持子域(例如 '*.k8s.io' 或 'k8s.*.io')和顶级域(例如 'k8s.*')。也支持匹配部分子域(例如 'app*.k8s.io')。每个 glob 只能匹配一个子域段,因此 '*.io' 不匹配 '*.k8s.io'。

当以下所有条件都成立时,镜像和 matchImage 之间存在匹配:

  • 两者包含相同数量的域部分,并且每个部分都匹配。
  • imageMatch 的 URL 路径必须是目标镜像 URL 路径的 a prefix。
  • 如果 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 [必需]
string

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

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

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

env
[]ExecEnvVar

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

ExecEnvVar

出现在

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

字段描述
name [必填]
string
未提供描述。
value [必填]
string
未提供描述。

ImagePullCredentialsVerificationPolicy

(string 的别名)

出现在

ImagePullCredentialsVerificationPolicy 是当 Pod 请求系统中存在的镜像时所执行策略的枚举。

KubeletAnonymousAuthentication

出现在

字段描述
enabled
bool

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

KubeletAuthentication

出现在

字段描述
x509
KubeletX509Authentication

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

webhook
KubeletWebhookAuthentication

webhook 包含与 webhook 持票人令牌身份验证相关的设置。

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 授权程序的 'authorized' 响应的持续时间。

cacheUnauthorizedTTL
meta/v1.Duration

cacheUnauthorizedTTL 是缓存来自 webhook 授权程序的 'unauthorized' 响应的持续时间。

KubeletX509Authentication

出现在

字段描述
clientCAFile
string

clientCAFile 是 PEM 编码的证书捆绑包的路径。如果设置,任何呈现由捆绑包中的一个证书颁发机构签名的客户端证书的请求都将被身份验证,用户名为证书的 CommonName,组名为证书的 Organization。

MemoryReservation

出现在

MemoryReservation 指定每个 NUMA 节点的各种类型的内存保留。

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

MemorySwapConfiguration

出现在

字段描述
swapBehavior
string

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

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 / absent。

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

默认值:65536

本页面是自动生成的。

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

最后修改于 2025 年 5 月 9 日上午 11:36 PST:修复配置 API 参考 (98329b37c4)