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 的默认值为 text

flushFrequency [必需]
TimeOrMetaDuration

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

verbosity [必需]
VerbosityLevel

冗余度是决定哪些日志消息被记录的阈值。默认值为零,仅记录最重要的消息。较高的值会启用附加消息。错误消息总是被记录。

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

此组件将报告追踪信息的收集器 endpoint。连接不安全,目前不支持 TLS。建议不设置,此时 endpoint 是 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 是包含每个 exec 凭证提供程序信息的配置。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 是一个映射,其中包含访问 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 是包含用于 HTTPS 的 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 是每秒 registry 拉取次数的限制。值必须为非负数。设置为 0 表示没有限制。默认值:5

registryBurst
int32

registryBurst 是突发拉取的最大数量,暂时允许拉取突发达到此数量,同时仍不超过 registryPullQPS。值必须为非负数。仅当 registryPullQPS 大于 0 时使用。默认值:10

eventRecordQPS
int32

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

eventBurst
int32

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

enableDebuggingHandlers
bool

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

enableContentionProfiling
bool

enableContentionProfiling 启用块分析,如果 enableDebuggingHandlers 为 true。默认值:false

healthzPort
int32

healthzPort 是 localhost healthz endpoint 的端口(设置为 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 服务器。默认值:nil

streamingConnectionIdleTimeout
meta/v1.Duration

streamingConnectionIdleTimeout 是流式连接在自动关闭之前可以空闲的最长时间。默认值:"4h"

nodeStatusUpdateFrequency
meta/v1.Duration

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

nodeStatusReportFrequency
meta/v1.Duration

nodeStatusReportFrequency 是当节点状态未改变时,kubelet 向主控节点发布节点状态的频率。如果检测到任何变化,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 类创建顶级 CGroup,并将所有 Burstable 和 BestEffort Pod 放在其特定的顶级 QoS CGroup 下。默认值:true

cgroupDriver
string

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

cpuManagerPolicy
string

cpuManagerPolicy 是要使用的策略名称。需要启用 CPUManager 特性门控。默认值:"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 管理器策略的行为。需要同时启用 "CPUManager" 和 "CPUManagerPolicyOptions" 特性门控。默认值:nil

cpuManagerReconcilePeriod
meta/v1.Duration

cpuManagerReconcilePeriod 是 CPU 管理器的协调周期。需要启用 CPUManager 特性门控。默认值:"10s"

memoryManagerPolicy
string

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

topologyManagerPolicy
string

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
string

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
string

hairpinMode 指定 Kubelet 如何为发夹包配置容器桥。设置此标志允许 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
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 限制的容器启用 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
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 一次拉取一个镜像。对于运行 Docker Daemon 版本低于 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 在退出驱逐压力条件之前必须等待的持续时间。默认值:"5m"

evictionMaxPodGracePeriod
int32

evictionMaxPodGracePeriod 是达到软驱逐阈值时终止 Pod 时使用的最大允许宽限期(秒)。此值有效地限制了软驱逐期间 Pod 的 terminationGracePeriodSeconds 值。默认值:0

evictionMinimumReclaim
map[string]string

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

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 如果节点上启用了 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 对从 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 [必需]
string

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

showHiddenMetricsForVersion
string

showHiddenMetricsForVersion 是您要显示隐藏度量的先前版本。仅先前的次要版本有意义,其他值将不被允许。格式为 <major>.<minor>,例如:1.16。此格式的目的是确保您有机会注意到下一版本是否隐藏了其他度量,而不是在随后的版本中永久删除时感到惊讶。默认值:""

systemReservedCgroup
string

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

kubeReservedCgroup
string

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

enforceNodeAllocatable
[]string

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

allowedUnsafeSysctls
[]string

以逗号分隔的不安全 sysctl 或 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。默认值:“”

kernelMemcgNotification
bool

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

logging [必需]
LoggingConfiguration

logging 指定日志记录的选项。有关更多信息,请参阅日志选项。默认值:格式: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 关联的优先级类别值的关机宽限期。当收到关机请求时,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 节点的预留内存总量应该等于节点可分配资源指定的内存总量。如果至少有一个节点可分配资源参数具有非零值,您将需要指定至少一个 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 配置 profile。默认值:false

memoryThrottlingFactor
float64

MemoryThrottlingFactor 指定在设置 cgroupv2 memory.high 值以强制执行 MemoryQoS 时,乘以内存限制或节点可分配内存的因子。减小此因子会为容器 cgroups 设置较低的 high 限制,并施加更大的回收压力,而增大此因子会施加更小的回收压力。有关更多详细信息,请参见 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 域套接字,Windows 支持 npipe 和 tcp 端点。示例:'unix:///path/to/runtime.sock', 'npipe:////./pipe/runtime'

imageServiceEndpoint
string

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

failCgroupV1
bool

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

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 调用的 exec 插件。仅当正在拉取的镜像与该插件处理的镜像匹配时,才会调用该插件(参见 matchImages)。

字段描述
name [必需]
string

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

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

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

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

env
[]ExecEnvVar

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

ExecEnvVar

出现在

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

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

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 支持的 bearer token 认证。

cacheTTL
meta/v1.Duration

cacheTTL 启用对认证结果的缓存

KubeletWebhookAuthorization

出现在

字段描述
cacheAuthorizedTTL
meta/v1.Duration

cacheAuthorizedTTL 是缓存来自 webhook 授权器的“已授权”响应的持续时间。

cacheUnauthorizedTTL
meta/v1.Duration

cacheUnauthorizedTTL 是缓存来自 webhook 授权器的“未授权”响应的持续时间。

KubeletX509Authentication

出现在

字段描述
clientCAFile
string

clientCAFile 是 PEM 编码的证书捆绑包的路径。如果设置,任何提供由捆绑包中某个颁发机构签名的客户端证书的请求,将使用与 CommonName 对应的用户名以及与客户端证书中 Organization 对应的组进行认证。

MemoryReservation

出现在

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

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

MemorySwapConfiguration

出现在

字段描述
swapBehavior
string

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

ResourceChangeDetectionStrategy

(string 的别名)

出现在

ResourceChangeDetectionStrategy 表示内部管理器(secret、configmap)检测对象变更的模式。

ShutdownGracePeriodByPodPriority

出现在

ShutdownGracePeriodByPodPriority 指定基于 Pod 关联的优先级类别值的关机宽限期

字段描述
priority [必需]
int32

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

shutdownGracePeriodSeconds [必需]
int64

shutdownGracePeriodSeconds 是关机宽限期,单位为秒

此页面是自动生成的。

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

最后修改时间:2024 年 12 月 12 日 5:37 PM PST:更新 v1.32 的配置 API (2914668152)