apiVersion string | kubelet.config.k8s.io/v1beta1 |
kind string | KubeletConfiguration |
enableServer [必需]
bool
|
enableServer 会启用 kubelet 的安全服务器。
注意:kubelet 的不安全端口由 readOnlyPort 选项控制。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能会影响到与 kubelet 服务器交互的组件。
默认值:true
|
staticPodPath
string
|
staticPodPath 是指向要运行的本地(静态)Pod 的目录,
或者指向某个静态 Pod 文件的路径。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑新路径下所给的静态 Pod 集合可能与 kubelet
启动时所看到的集合不同,而这一差别可能会扰乱节点状态。
默认值:""
|
syncFrequency
meta/v1.Duration
|
syncFrequency 是对运行中的容器和配置进行同步的最长周期。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑缩短这一同步周期可能会带来负面的性能影响,
尤其当节点上 Pod 个数增加时。相反,增加此周期长度时可能会导致 ConfigMap、
Secret 这类资源未被及时更新。
默认值:"1m"
|
fileCheckFrequency
meta/v1.Duration
|
fileCheckFrequency 是对配置文件中新数据进行检查的时间间隔值。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑缩短此时长会导致 kubelet 更为频繁地重新加载其静态 Pod 配置,
而这会带来负面的性能影响。
默认值:"20s"
|
httpCheckFrequency
meta/v1.Duration
|
httpCheckFrequency 是对 HTTP 服务器上新数据进行检查的时间间隔值。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑缩短此时长会导致 kubelet 更为频繁地轮询
staticPodURL ,而这会带来负面的性能影响。
默认值:"20s"
|
staticPodURL
string
|
staticPodURL 是访问要运行的静态 Pod 的 URL 地址。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,新的 URL 上包含的静态 Pod 集合可能与 kubelet
初始启动时看到的不同,而这种差异可能会扰乱节点状态。
默认值:""
|
staticPodURLHeader
map[string][]string
|
staticPodURLHeader 是一个由字符串组成的映射表,其中包含的 HTTP
头部信息用于访问podURL 。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,要考虑可能导致无法从staticPodURL
读取最新的静态 Pod 集合。
默认值:nil
|
address
string
|
address 是 kubelet 提供服务所用的 IP 地址(设置为 0.0.0.0
使用所有网络接口提供服务)。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能干扰与 kubelet 服务器交互的组件。
默认值:"0.0.0.0"
|
port
int32
|
port 是 kubelet 用来提供服务所使用的端口号。
这一端口号必须介于 1 到 65535 之间,包含 1 和 65535。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能干扰与 kubelet 服务器交互的组件。
默认值:10250
|
readOnlyPort
int32
|
readOnlyPort 是 kubelet 用来提供服务所使用的只读端口号。
此端口上的服务不支持身份认证或鉴权。这一端口号必须介于 1 到 65535 之间,
包含 1 和 65535。将此字段设置为 0 会禁用只读服务。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能干扰与 kubelet 服务器交互的组件。
默认值:0(禁用)
|
tlsCertFile
string
|
tlsCertFile 是包含 HTTPS 所需要的 x509 证书的文件
(如果有 CA 证书,会串接到服务器证书之后)。如果tlsCertFile
和tlsPrivateKeyFile 都没有设置,则系统会为节点的公开地址生成自签名的证书和私钥,
并将其保存到 kubelet --cert-dir 参数所指定的目录下。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能干扰与 kubelet 服务器交互的组件。
默认值:""
|
tlsPrivateKeyFile
string
|
tlsPrivateKeyFile 是一个包含与tlsCertFile
证书匹配的 X509 私钥的文件。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能干扰与 kubelet 服务器交互的组件。
默认值:""
|
tlsCipherSuites
[]string
|
tlsCipherSuites 是一个字符串列表,其中包含服务器所接受的加密包名称。
列表中的每个值来自于tls 包中定义的常数(https://golang.org/pkg/crypto/tls/#pkg-constants)。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能干扰到与 kubelet 服务器交互的组件。
默认值:nil
|
tlsMinVersion
string
|
tlsMinVersion 给出所支持的最小 TLS 版本。
字段取值来自于tls 包中的常数定义(https://golang.org/pkg/crypto/tls/#pkg-constants)。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能干扰到与 kubelet 服务器交互的组件。
默认值:""
|
rotateCertificates
bool
|
rotateCertificates 用来启用客户端证书轮换。kubelet 会调用
certificates.k8s.io API 来请求新的证书。需要有一个批复人批准证书签名请求。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑禁用此行为时可能导致 kubelet 无法在当前证书过期时向
API 服务器执行身份认证。
默认值:false
|
serverTLSBootstrap
bool
|
serverTLSBootstrap 用来启用服务器证书引导。系统不再使用自签名的服务证书,
kubelet 会调用certificates.k8s.io API 来请求证书。
需要有一个批复人来批准证书签名请求(CSR)。
设置此字段时,RotateKubeletServerCertificate 特性必须被启用。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑禁用此特性会导致 kubelet 的服务器证书无法被续约,
长期上这会干扰到与 kubelet 服务器交互的组件,因为证书会过期。
默认值:false
|
authentication
KubeletAuthentication
|
authorization 设置发送给 kubelet 服务器的请求是如何进行身份认证的。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能干扰与 kubelet 服务器交互的组件。
默认值:
anonymous:
enabled: false
webhook:
enabled: true
cacheTTL: "2m"
|
authorization
KubeletAuthorization
|
authorization 设置发送给 kubelet 服务器的请求是如何进行鉴权的。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能会干扰到与 kubelet 服务器交互的组件。
默认值:
mode: Webhook
webhook:
cacheAuthorizedTTL: "5m"
cacheUnauthorizedTTL: "30s"
|
registryPullQPS
int32
|
registryPullQPS 是每秒钟可以执行的镜像仓库拉取操作限值。
此值必须不能为负数。将其设置为 0 表示没有限值。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这类更新可能会因为镜像拉取所产生的流量变化而导致集群可扩缩能力问题。
默认值:5
|
registryBurst
int32
|
registryBurst 是突发性镜像拉取的上限值,允许镜像拉取临时上升到所指定数量,
不过仍然不超过registryPullQPS 所设置的约束。此值必须是非负值。
只有registryPullQPS 参数值大于 0 时才会使用此设置。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能因为镜像拉取所造成的流量变化,导致集群可扩缩能力受影响。
默认值:10
|
eventRecordQPS
int32
|
eventRecordQPS 设置每秒钟可创建的事件个数上限。如果此值为 0,
则表示没有限制。此值不能设置为负数。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能因为生成事件所造成的流量变化,导致集群可扩缩能力受影响。
默认值:5
|
eventBurst
int32
|
eventBurst 是突发性事件创建的上限值,允许事件创建临时上升到所指定数量,
不过仍然不超过eventRecordQPS 所设置的约束。此值必须是非负值,
且只有eventRecordQPS 大于 0 时才会使用此设置。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能因为事件创建所造成的流量变化,导致集群可扩缩能力受影响。
默认值:10
|
enableDebuggingHandlers
bool
|
enableDebuggingHandlers 启用服务器上用来访问日志、
在本地运行容器和命令的端点,包括exec 、attach 、
logs 和portforward 等功能。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑禁用此能力可能干扰到与 kubelet 服务器交互的组件。
默认值:true
|
enableContentionProfiling
bool
|
enableContentionProfiling 用于启用锁竞争性能分析,
仅用于enableDebuggingHandlers 为true 的场合。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑启用此分析可能隐含着一定的性能影响。
默认值:false
|
healthzPort
int32
|
healthzPort 是本地主机上提供healthz 端点的端口
(设置值为 0 时表示禁止)。合法值介于 1 和 65535 之间。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能干扰到监控 kubelet 健康状况的组件。
默认值:10248
|
healthzBindAddress
string
|
healthzBindAddress是healthz 服务器用来提供服务的 IP 地址。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能影响到监测 kubelet 健康状况的组件。
默认值:"127.0.0.1"
|
oomScoreAdj
int32
|
oomScoreAdj 是为 kubelet 进程设置的oom-score-adj 值。
所设置的取值要在 [-1000, 1000] 范围之内。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能影响到内存压力较大时节点的稳定性。
默认值:-999
|
clusterDomain
string
|
clusterDomain 是集群的 DNS 域名。如果设置了此字段,kubelet
会配置所有容器,使之在搜索主机的搜索域的同时也搜索这里指定的 DNS 域。
DynamicKubeletConfig (已弃用,默认为关闭):
不建议动态更新此字段,因为这一设置值要与整个集群中的其他组件保持一致。
默认值:""
|
clusterDNS
[]string
|
clusterDNS 是集群 DNS 服务器的 IP 地址的列表。
如果设置了,kubelet 将会配置所有容器使用这里的 IP 地址而不是宿主系统上的 DNS
服务器来完成 DNS 解析。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑变更仅会对更新后创建的 Pod 起作用。建议在更改此字段之前腾空节点。
默认值:nil
|
streamingConnectionIdleTimeout
meta/v1.Duration
|
streamingConnectionIdleTimeout 设置流式连接在被自动关闭之前可以空闲的最长时间。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能影响到依赖于通过与 kubelet
服务器间流式连接来接受非频繁更新事件的组件。
默认值:"4h"
|
nodeStatusUpdateFrequency
meta/v1.Duration
|
nodeStatusUpdateFrequency 是 kubelet 计算节点状态的频率。
如果未启用节点租约特性,这一字段设置的也是 kubelet 向控制面投递节点状态的频率。
注意:如果节点租约特性未被启用,更改此参数设置时要非常小心,
所设置的参数值必须与节点控制器的nodeMonitorGracePeriod 协同。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑变更可能影响节点的可扩缩性。还要注意节点控制器的
nodeMonitorGracePeriod 必须设置为N∗nodeStatusUpdateFrequency ,
其中N 是节点控制器标记节点不健康之前执行重试的次数。
默认值:"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 秒钟续约一次。
在将来,租约的续约时间间隔可能会根据租约的时长来设置。
此字段的取值必须大于零。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑缩短租约期限可能降低节点对那些暂时导致 kubelet
无法续约的问题的容忍度(例如,时延很短的网络问题)。
默认值:40
|
imageMinimumGCAge
meta/v1.Duration
|
imageMinimumGCAge 是对未使用镜像进行垃圾搜集之前允许其存在的时长。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这种变更可能触发垃圾收集或者延迟垃圾收集,
并且可能影响节点上镜像的额外开销。
默认值:"2m"
|
imageGCHighThresholdPercent
int32
|
imageGCHighThresholdPercent 所给的是镜像的磁盘用量百分数,
一旦镜像用量超过此阈值,则镜像垃圾收集会一直运行。百分比是用这里的值除以 100
得到的,所以此字段取值必须介于 0 和 100 之间,包括 0 和 100。如果设置了此字段,
则取值必须大于imageGCLowThresholdPercent 取值。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这种变更可能触发垃圾收集或者延迟垃圾收集,
并且可能影响节点上镜像的额外开销。
默认值:85
|
imageGCLowThresholdPercent
int32
|
imageGCLowThresholdPercent 所给的是镜像的磁盘用量百分数,
镜像用量低于此阈值时不会执行镜像垃圾收集操作。垃圾收集操作也将此作为最低磁盘用量边界。
百分比是用这里的值除以 100 得到的,所以此字段取值必须介于 0 和 100 之间,包括 0 和 100。
如果设置了此字段,则取值必须小于imageGCHighThresholdPercent 取值。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这种变更可能触发垃圾收集或者延迟垃圾收集,
并且可能影响节点上镜像的额外开销。
默认值:80
|
volumeStatsAggPeriod
meta/v1.Duration
|
volumeStatsAggPeriod 是计算和缓存所有 Pod 磁盘用量的频率。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑缩短此周期长度可能产生性能影响。
默认值:"1m"
|
kubeletCgroups
string
|
kubeletCgroups 是用来隔离 kubelet 的控制组(CGroup)的绝对名称。
DynamicKubeletConfig (已弃用):
更新此字段时需要对整个节点执行重启。最安全的做法是确保此值与本地配置相同。
默认值:""
|
systemCgroups
string
|
systemCgroups 是用来放置那些未被容器化的、非内核的进程的控制组
(CGroup)的绝对名称。设置为空字符串表示没有这类容器。回滚此字段设置需要重启节点。
当此字段非空时,必须设置cgroupRoot 字段。
DynamicKubeletConfig (已弃用):
更新此字段时需要对整个节点执行重启。最安全的做法是确保此值与本地配置相同。
默认值:""
|
cgroupRoot
string
|
cgroupRoot 是用来运行 Pod 的控制组 (CGroup)。
容器运行时会尽可能处理此字段的设置值。
DynamicKubeletConfig (已弃用):
更新此字段时需要对整个节点执行重启。最安全的做法是确保此值与本地配置相同。
默认值:""
|
cgroupsPerQOS
bool
|
cgroupsPerQOS 用来启用基于 QoS 的控制组(CGroup)层次结构:
顶层的控制组用于不同 QoS 类,所有Burstable 和BestEffort Pod
都会被放置到对应的顶级 QoS 控制组下。
DynamicKubeletConfig (已弃用):
更新此字段时需要对整个节点执行重启。最安全的做法是确保此值与本地配置相同。
默认值:true
|
cgroupDriver
string
|
cgroupDriver 是 kubelet 用来操控宿主系统上控制组 (CGroup)
的驱动程序(cgroupfs 或 systemd)。
DynamicKubeletConfig (已弃用):
更新此字段时需要对整个节点执行重启。最安全的做法是确保此值与本地配置相同。
默认值:"cgroupfs"
|
cpuManagerPolicy
string
|
cpuManagerPolicy 是要使用的策略名称。需要启用CPUManager
特性门控。
DynamicKubeletConfig (已弃用):
更新此字段时需要对整个节点执行重启。最安全的做法是确保此值与本地配置相同。
默认值:"None"
|
cpuManagerPolicyOptions
map[string]string
|
cpuManagerPolicyOptions 是一组key=value 键值映射,
容许通过额外的选项来精细调整 CPU 管理器策略的行为。需要CPUManager 和
CPUManagerPolicyOptions 两个特性门控都被启用。
DynamicKubeletConfig (已弃用):
更新此字段时需要对整个节点执行重启。最安全的做法是确保此值与本地配置相同。
默认值:nil
|
cpuManagerReconcilePeriod
meta/v1.Duration
|
cpuManagerReconcilePeriod 是 CPU 管理器的协调周期时长。
需要启用CPUManager 特性门控。
DynamicKubeletConfig (已弃用):
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑缩短周期时长可能带来的性能影响。
默认值:"10s"
|
memoryManagerPolicy
string
|
memoryManagerPolicy 是内存管理器要使用的策略的名称。
要求启用MemoryManager 特性门控。
DynamicKubeletConfig (已弃用):
更新此字段时需要对整个节点执行重启。最安全的做法是确保此值与本地配置相同。
默认值:"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",则要求启用TopologyManager 特性门控。
DynamicKubeletConfig (已弃用):
更新此字段时需要对整个节点执行重启。最安全的做法是确保此值与本地配置相同。
默认值:"none"
|
topologyManagerScope
string
|
topologyManagerScope 代表的是拓扑提示生成的范围,
拓扑提示信息由提示提供者生成,提供给拓扑管理器。合法值包括:
container :拓扑策略是按每个容器来实施的。
pod :拓扑策略是按每个 Pod 来实施的。
"pod" 范围要求启用TopologyManager 特性门控。
默认值:"container"
|
qosReserved
map[string]string
|
qosReserved 是一组从资源名称到百分比值的映射,用来为Guaranteed
QoS 类型的负载预留供其独占使用的资源百分比。目前支持的资源为:"memory"。
需要启用QOSReserved 特性门控。
DynamicKubeletConfig (已弃用):
更新此字段时需要对整个节点执行重启。最安全的做法是确保此值与本地配置相同。
默认值:nil
|
runtimeRequestTimeout
meta/v1.Duration
|
runtimeRequestTimeout 用来设置除长期运行的请求(pull 、
logs 、exec 和attach )之外所有运行时请求的超时时长。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能干扰与 kubelet 服务器交互的组件。
默认值:"2m"
|
hairpinMode
string
|
hairpinMode 设置 kubelet 如何为发夹模式数据包配置容器网桥。
设置此字段可以让 Service 中的端点在尝试访问自身 Service 时将服务请求路由的自身。
可选值有:
- "promiscuous-bridge":将容器网桥设置为混杂模式。
- "hairpin-veth":在容器的 veth 接口上设置发夹模式标记。
- "none":什么也不做。
一般而言,用户必须设置--hairpin-mode=hairpin-veth 才能实现发夹模式的网络地址转译
(NAT),因为混杂模式的网桥要求存在一个名为cbr0 的容器网桥。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑取决于网络插件,可能需要重启节点。
默认值:"promiscuous-bridge"
|
maxPods
int32
|
maxPods 是此 kubelet 上课运行的 Pod 个数上限。此值必须为非负整数。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑变更可能导致 kubelet 重启时 Pod 无法被准入,
而且可能改变Node.status.capacity[v1.ResourcePods] 中报告的数值,
从而影响将来的调度决策。增大此个数值也可能会降低性能,因为会有更多的 Pod
塞到同一节点运行。
默认值:110
|
podCIDR
string
|
podCIDR 是用来设置 Pod IP 地址的 CIDR 值,仅用于独立部署模式。
运行于集群模式时,这一数值会从控制面获得。
DynamicKubeletConfig (已弃用):
此字段应该总是设置为默认的空字符串值。并且仅用来设置独立运行的 kubelet,
因为这种 kubelet 模式下无法利用动态 kubelet 配置能力。
默认值:""
|
podPidsLimit
int64
|
podPidsLimit 是每个 Pod 中可使用的 PID 个数上限。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑减小此值可能会导致变更后无法创建容器进程。
默认值:-1
|
resolvConf
string
|
resolvConf 是一个域名解析配置文件,用作容器 DNS 解析配置的基础。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑变更仅会对更新完成后所创建的 Pod 起作用。
建议在变更此字段之前先腾空节点。如果此值设置为空字符串,则会覆盖 DNS 解析的默认配置,
本质上相当于禁用了 DNS 查询。
默认值:"/etc/resolv.conf"
|
runOnce
bool
|
runOnce 字段被设置时,kubelet 会咨询 API 服务器一次并获得 Pod 列表,
运行在静态 Pod 文件中指定的 Pod 及这里所获得的的 Pod,然后退出。
默认值:false
|
cpuCFSQuota
bool
|
cpuCFSQuota 允许为设置了 CPU 限制的容器实施 CPU CFS 配额约束。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑禁止此功能可能会降低节点稳定性。
默认值:true
|
cpuCFSQuotaPeriod
meta/v1.Duration
|
cpuCFSQuotaPeriod 设置 CPU CFS 配额周期值,cpu.cfs_period_us 。
此值需要介于 1 微秒和 1 秒之间,包含 1 微秒和 1 秒。
此功能要求启用CustomCPUCFSQuotaPeriod 特性门控被启用。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑为容器所设置的限制值可能导致cpu.cfs_period_us
设置发生变化。这一变化会在节点被重新配置时触发容器重启。
默认值:"100ms"
|
nodeStatusMaxImages
int32
|
nodeStatusMaxImages 限制Node.status.images 中报告的镜像数量。
此值必须大于 -2。
注意:如果设置为 -1,则不会对镜像数量做限制;如果设置为 0,则不会返回任何镜像。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑节点状态中可能报告不同的数值。
默认值:50
|
maxOpenFiles
int64
|
maxOpenFiles 是 kubelet 进程可以打开的文件个数。此值必须不能为负数。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能影响到 kubelet 与节点文件系统间交互的能力。
默认值:1000000
|
contentType
string
|
contentType 是向 API 服务器发送请求时使用的内容类型。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这样做可能影响 kubelet 与 API 服务器通信的能力。
如果 kubelet 因为此字段的变更而失去与 API 服务器间的连接,
则之前所作的变更无法通过动态 kubelet 配置来实现回退。
默认值:"application/vnd.kubernetes.protobuf"
|
kubeAPIQPS
int32
|
kubeAPIQPS 设置与 Kubernetes API 服务器通信时要使用的 QPS(每秒查询数)。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这可能因为 kubelet 与 API 服务器之间流量的变化而影响集群扩缩能力。
默认值:5
|
kubeAPIBurst
int32
|
kubeAPIBurst 设置与 Kubernetes API 服务器通信时突发的流量级别。
此字段取值不可以是负数。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这可能因为 kubelet 与 API 服务器之间流量的变化而影响集群扩缩能力。
默认值:10
|
serializeImagePulls
bool
|
serializeImagePulls 被启用时会通知 kubelet 每次仅拉取一个镜像。
我们建议不要在所运行的 docker 守护进程版本低于 1.9、使用 aufs
存储后端的节点上更改默认值。详细信息可参见 Issue #10959。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这可能会影响镜像拉取的性能。
默认值:true
|
evictionHard
map[string]string
|
evictionHard 是一个映射,是从信号名称到定义硬性驱逐阈值的映射。
例如:{"memory.available": "300Mi"} 。
如果希望显式地禁用,可以在任意资源上将其阈值设置为 0% 或 100%。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这可能会触发或延迟 Pod 驱逐操作。
默认值:
memory.available: "100Mi"
nodefs.available: "10%"
nodefs.inodesFree: "5%"
imagefs.available: "15%"
|
evictionSoft
map[string]string
|
evictionSoft 是一个映射,是从信号名称到定义软性驱逐阈值的映射。
例如:{"memory.available": "300Mi"} 。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这可能会触发或延迟 Pod 驱逐操作,
并且可能造成节点所报告的可分配资源数量发生变化。
默认值:nil
|
evictionSoftGracePeriod
map[string]string
|
evictionSoftGracePeriod 是一个映射,是从信号名称到每个软性驱逐信号的宽限期限。
例如:{"memory.available": "30s"} 。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这可能会触发或延迟 Pod 驱逐操作。
默认值:nil
|
evictionPressureTransitionPeriod
meta/v1.Duration
|
evictionPressureTransitionPeriod 设置 kubelet
离开驱逐压力状况之前必须要等待的时长。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑减少此字段值可能会在节点过量分配时降低节点稳定性。
默认值:"5m"
|
evictionMaxPodGracePeriod
int32
|
evictionMaxPodGracePeriod 是指达到软性逐出阈值而引起 Pod 终止时,
可以赋予的宽限期限最大值(按秒计)。这个值本质上限制了软性逐出事件发生时,
Pod 可以获得的terminationGracePeriodSeconds 。
注意:由于 Issue #64530 的原因,系统中存在一个缺陷,即此处所设置的值会在软性逐出时覆盖
Pod 的宽限期设置,从而有可能增加 Pod 上原本设置的宽限期限时长。
这个缺陷会在未来版本中修复。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑缩短此宽限期限值会导致软性逐出期间 Pod
在被杀死之前用来体面地完成清理工作可用的时间。
默认值:0
|
evictionMinimumReclaim
map[string]string
|
evictionMinimumReclaim 是一个映射,定义信号名称与最小回收量数值之间的关系。
最小回收量指的是资源压力较大而执行 Pod 驱逐操作时,kubelet 对给定资源的最小回收量。
例如:{"imagefs.available": "2Gi"} 。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这可能会改变驱逐操作应对资源压力的效果。
默认值:nil
|
podsPerCore
int32
|
podsPerCore 设置的是每个核上 Pod 个数上限。此值不能超过maxPods 。
所设值必须是非负整数。如果设置为 0,则意味着对 Pod 个数没有限制。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑变更可能导致 kubelet 重启时 Pod 无法被准入,
还可能导致Node.status.capacity.pods 所报告的数值发生变化,
进而影响到将来的调度决策。增大此值也会降低性能,因为在同一个处理器核上需要运行更多的 Pod。
默认值:0
|
enableControllerAttachDetach
bool
|
enableControllerAttachDetach 用来允许 Attach/Detach
控制器管理调度到本节点的卷的挂接(attachment)和解除挂接(detachement),
并且禁止 kubelet 执行任何 attach/detach 操作。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑在运行中的节点上更改由哪个组件来负责卷管理时,
这一变更可能导致节点在被更新前尚未腾空时卷无法被解除挂接。
如果 kubelet 尚未更新volumes.kubernetes.io/controller-managed-attach-detach
注解时 Pod 已经被调度到了该节点,节点上的卷也会无法解除挂接。
一般而言,最安全的做法是将此字段设置为与本地配置相同的值。
默认值:true
|
protectKernelDefaults
bool
|
protectKernelDefaults 设置为true 时,会令 kubelet
在发现内核参数与预期不符时出错退出。若此字段设置为false ,则 kubelet
会尝试更改内核参数以满足其预期。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑启用此设置会在内核参数与 kubelet 预期不匹配时导致
kubelet 进入崩溃循环(Crash-Loop)状态。
默认值:false
|
makeIPTablesUtilChains
bool
|
makeIPTablesUtilChains 设置为true 时,相当于允许 kubelet
确保一组 iptables 规则存在于宿主机上。这些规则会为不同的组件(例如 kube-proxy)
提供工具性质的规则。它们是基于iptablesMasqueradeBit 和iptablesDropBit
来创建的。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑禁用此行为会导致 kubelet 无法在本地 iptables
规则出错时实现自愈。
默认值:true
|
iptablesMasqueradeBit
int32
|
iptablesMasqueradeBit 是 iptables fwmark 空间中用来为 SNAT
作标记的位。此值必须介于[0, 31] 区间,必须与其他标记位不同。
警告:请确保此值设置与 kube-proxy 中对应的参数设置取值相同。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑此处的变更要与其他组件(如 kube-proxy)相应的变更协调一致。
只有当makeIPTablesUtilChains 能力被启用时,这里的更新才会起作用。
默认值:14
|
iptablesDropBit
int32
|
iptablesDropBit 是 iptables fwmark 空间中用来标记丢弃包的数据位。
此值必须介于[0, 31] 区间,必须与其他标记位不同。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑此处的变更要与其他组件(如 kube-proxy)相应的变更协调一致。
只有当makeIPTablesUtilChains 能力被启用时,这里的更新才会起作用。
默认值:15
|
featureGates
map[string]bool
|
featureGates 是一个从功能特性名称到布尔值的映射,用来启用或禁用实验性的功能。
此字段可逐条更改文件 "k8s.io/kubernetes/pkg/features/kube_features.go"
中所给的内置默认值。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑你所启用或禁止的功能特性的文档。
尽管我们鼓励功能特性的开发人员使动态启用或禁用功能特性成为可能,
某些变更可能要求重新启动节点,某些特性可能要求在从启用到禁用切换时作出精细的协调。
默认值:nil
|
failSwapOn
bool
|
failSwapOn 通知 kubelet 在节点上启用交换分区时拒绝启动。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑缩短此周期长度可能产生性能影响。
默认值:true
|
memorySwap
MemorySwapConfiguration
|
memorySwap 配置容器负载可用的交换内存。
|
containerLogMaxSize
string
|
containerLogMaxSize 是定义容器日志文件被轮转之前可以到达的最大尺寸。
例如:"5Mi" 或 "256Ki"。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能会触发日志轮转。
默认值:"10Mi"
|
containerLogMaxFiles
int32
|
containerLogMaxFiles 设置每个容器可以存在的日志文件个数上限。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑降低此值可能导致日志文件被删除。
默认值:"5"
|
configMapAndSecretChangeDetectionStrategy
ResourceChangeDetectionStrategy
|
configMapAndSecretChangeDetectionStrategy 是 ConfigMap 和 Secret
管理器的运行模式。合法值包括:
Get :kubelet 从 API 服务器直接取回必要的对象;
Cache :kubelet 使用 TTL 缓存来管理来自 API 服务器的对象;
Watch :kubelet 使用 watch 操作来观察所关心的对象的变更。
默认值:"Watch"
|
systemReserved
map[string]string
|
systemReserved 是一组资源名称=资源数量 对,
用来描述为非 Kubernetes 组件预留的资源(例如:'cpu=200m,memory=150G')。
目前仅支持 CPU 和内存。更多细节可参见 http://kubernetes.io/zh/docs/user-guide/compute-resources。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑增加预留资源也许是不可能的,因为需要改变控制组大小。
在更改了此字段之后,应该总是关注NodeAllocatableEnforced 事件,
以确保更新是成功的。
默认值:Nil
|
kubeReserved
map[string]string
|
kubeReserved 是一组资源名称=资源数量 对,
用来描述为 Kubernetes 系统组件预留的资源(例如:'cpu=200m,memory=150G')。
目前支持 CPU、内存和根文件系统的本地存储。
更多细节可参见 https://kubernetes.io/zh/docs/concepts/configuration/manage-resources-containers/。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑增加预留资源也许是不可能的,因为需要改变控制组大小。
在更改了此字段之后,应该总是关注NodeAllocatableEnforced 事件,
以确保更新是成功的。
默认值: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](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md)
以了解详细信息。
DynamicKubeletConfig (已弃用):
此字段更新时需要整个节点重启。最安全的做法是保持此值与本地配置相同。
默认值:""
|
kubeReservedCgroup
string
|
kubeReservedCgroup 帮助 kubelet 识别用来为 Kubernetes 节点系统级守护进程实施
kubeReserved 计算资源预留时使用的顶级控制组(CGroup)。
参阅Node Allocatable
了解进一步的信息。
DynamicKubeletConfig (已弃用):
此字段更新时需要整个节点重启。最安全的做法是保持此值与本地配置相同。
默认值:""
|
enforceNodeAllocatable
[]string
|
此标志设置 kubelet 需要执行的各类节点可分配资源策略。此字段接受一组选项列表。
可接受的选项有none 、pods 、system-reserved 和
kube-reserved 。
如果设置了none ,则字段值中不可以包含其他选项。
如果列表中包含system-reserved ,则必须设置systemReservedCgroup 。
如果列表中包含kube-reserved ,则必须设置kubeReservedCgroup 。
这个字段只有在cgroupsPerQOS 被设置为true 才被支持。
参阅Node Allocatable
了解进一步的信息。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑去掉此机制可能会降低节点稳定性。
反之,添加此机制可能会降低原来使用资源超出预留量的组件的稳定性。
例如,实施 kube-reserved 在 kubelet 使用资源超出预留量时可能导致 kubelet 发生 OOM,
而实施 system-reserved 机制可能导致使用资源超出预留量的系统守护进程发生 OOM。
默认值:["pods"]
|
allowedUnsafeSysctls
[]string
|
用逗号分隔的白名单列表,其中包含不安全的 sysctl 或 sysctl 模式(以∗ 结尾)。
不安全的 sysctl 组有 kernel.shm∗ 、kernel.msg∗ 、
kernel.sem 、fs.mqueue.∗ 和net.∗ 。
例如:"kernel.msg∗,net.ipv4.route.min\_pmtu "
默认值:[]
|
volumePluginDir
string
|
volumePluginDir 是用来搜索其他第三方卷插件的目录的路径。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑更改volumePluginDir 可能干扰使用第三方卷插件的负载。
默认值:"/usr/libexec/kubernetes/kubelet-plugins/volume/exec/"
|
providerID
string
|
providerID 字段被设置时,指定的是一个外部提供者(即云驱动)实例的唯一 ID,
该提供者可用来唯一性地标识特定节点。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑可能影响到 kubelet 与云驱动之间进行交互的能力。
默认值:""
|
kernelMemcgNotification
bool
|
kernelMemcgNotification 字段如果被设置了,会告知 kubelet 集成内核的
memcg 通知机制来确定是否超出内存逐出阈值,而不是使用轮询机制来判定。
当 DynamicKubeletConfig (已弃用,默认为关闭)被启用时,
如果动态更新了此字段,请考虑这样做可能影响到 kubelet 与内核的交互方式。
默认值:false
|
logging [必需]
LoggingConfiguration
|
logging 设置日志机制选项。更多的详细信息科参阅
日志选项。
默认值:
Format: text
|
enableSystemLogHandler
bool
|
enableSystemLogHandler 用来启用通过 Web 接口 host:port/logs/
访问系统日志的能力。
默认值:true
|
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 收到关闭请求的时候,kubelet
会针对节点上运行的所有 Pod 发起关闭操作,这些关闭操作会根据 Pod 的优先级确定其宽限期限,
之后 kubelet 等待所有 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
|
reservedMemory
[]MemoryReservation
|
reservedMemory 给出一个逗号分隔的列表,为 NUMA 节点预留内存。
此参数仅在内存管理器功能特性语境下有意义。内存管理器不会为容器负载分配预留内存。
例如,如果你的 NUMA0 节点内存为 10Gi,reservedMemory 设置为在 NUMA0
上预留 1Gi 内存,内存管理器会认为其上只有 9Gi 内存可供分配。
你可以设置不同数量的 NUMA 节点和内存类型。你也可以完全忽略这个字段,不过你要清楚,
所有 NUMA 节点上预留内存的总量要等于通过
node allocatable
设置的内存量。
如果至少有一个节点可分配参数设置值非零,则你需要设置至少一个 NUMA 节点。
此外,避免如下设置:
- 在配置值中存在重复项,NUMA 节点和内存类型相同,但配置值不同,这是不允许的。
- 为任何内存类型设置限制值为零。
- NUMA 节点 ID 在宿主系统上不存在。/li>
- 除
memory 和hugepages-<size> 之外的内存类型。
默认值:nil
|
enableProfilingHandler
bool
|
enableProfilingHandler 启用通过 host:port/debug/pprof/ 接口来执行性能分析。
默认值:true
|
enableDebugFlagsHandler
bool
|
enableDebugFlagsHandler 启用通过 host:port/debug/flags/v Web
接口上的标志设置。
默认值:true
|
seccompDefault
bool
|
seccompDefault 字段允许针对所有负载将RuntimeDefault
设置为默认的 seccomp 配置。这一设置要求对应的SeccompDefault 特性门控被启用。
默认值:false
|
memoryThrottlingFactor
float64
|
当设置 cgroupv2 memory.high 以实施MemoryQoS 特性时,
memoryThrottlingFactor 用来作为内存限制或节点可分配内存的系数。
减小此系数会为容器控制组设置较低的 high 限制值,从而增大回收压力;反之,
增大此系数会降低回收压力。更多细节参见 http://kep.k8s.io/2570。
默认值:0.8
|
registerWithTaints
[]core/v1.Taint
|
registerWithTaints 是一个由污点组成的数组,包含 kubelet
注册自身时要向节点对象添加的污点。只有registerNode 为true
时才会起作用,并且仅在节点的最初注册时起作用。
默认值:nil
|
registerNode
bool
|
registerNode 启用向 API 服务器的自动注册。
默认值:true
|