Information in this document may be out of date
This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Kubelet Configuration (v1beta1)
Kubelet 配置 (v1beta1)
资源类型
CredentialProviderConfig
CredentialProviderConfig 包含有关每个 exec 凭据提供者的配置信息。 Kubelet 从磁盘上读取这些配置信息,并根据 CredentialProvider 类型启用各个提供者。
字段 | 描述 |
---|---|
apiVersion string | kubelet.config.k8s.io/v1beta1 |
kind string | CredentialProviderConfig |
providers [必需][]CredentialProvider |
|
KubeletConfiguration
KubeletConfiguration 中包含 Kubelet 的配置。
字段 | 描述 |
---|---|
apiVersion string | kubelet.config.k8s.io/v1beta1 |
kind string | KubeletConfiguration |
enableServer [必需]bool |
注意:kubelet 的不安全端口由 默认值: |
staticPodPath string |
默认值:"" |
syncFrequency meta/v1.Duration |
默认值:"1m" |
fileCheckFrequency meta/v1.Duration |
默认值:"20s" |
httpCheckFrequency meta/v1.Duration |
默认值:"20s" |
staticPodURL string |
默认值:"" |
staticPodURLHeader map[string][]string |
默认值:nil |
address string |
默认值:"0.0.0.0" |
port int32 |
默认值:10250 |
readOnlyPort int32 |
默认值:0(禁用) |
tlsCertFile string |
默认值:"" |
tlsPrivateKeyFile string |
默认值:"" |
tlsCipherSuites []string |
默认值:nil |
tlsMinVersion string |
默认值:"" |
rotateCertificates bool |
默认值:false |
serverTLSBootstrap bool |
默认值:false |
authentication KubeletAuthentication |
默认值:
|
authorization KubeletAuthorization |
默认值:
|
registryPullQPS int32 |
默认值:5 |
registryBurst int32 |
默认值:10 |
eventRecordQPS int32 |
默认值:50 |
eventBurst int32 |
默认值:100 |
enableDebuggingHandlers bool |
默认值:true |
enableContentionProfiling bool |
默认值:false |
healthzPort int32 |
默认值:10248 |
healthzBindAddress string |
默认值:"127.0.0.1" |
oomScoreAdj int32 |
默认值:-999 |
clusterDomain string |
默认值:"" |
clusterDNS []string |
默认值:nil |
streamingConnectionIdleTimeout meta/v1.Duration |
默认值:"4h" |
nodeStatusUpdateFrequency meta/v1.Duration |
注意:如果节点租约特性未被启用,更改此参数设置时要非常小心,
所设置的参数值必须与节点控制器的 默认值:"10s" |
nodeStatusReportFrequency meta/v1.Duration |
此字段仅当启用了节点租约特性时才被使用。 默认值:"5m" |
nodeLeaseDurationSeconds int32 |
如果租约过期,则节点可被视作不健康。根据 KEP-0009 约定,目前的租约每 10 秒钟续约一次。 在将来,租约的续约时间间隔可能会根据租约的时长来设置。 此字段的取值必须大于零。 默认值:40 |
imageMinimumGCAge meta/v1.Duration |
默认值:"2m" |
imageGCHighThresholdPercent int32 |
默认值:85 |
imageGCLowThresholdPercent int32 |
默认值:80 |
volumeStatsAggPeriod meta/v1.Duration |
默认值:"1m" |
kubeletCgroups string |
默认值:"" |
systemCgroups string |
默认值:"" |
cgroupRoot string |
|
cgroupsPerQOS bool |
默认值:true |
cgroupDriver string |
默认值:"cgroupfs" |
cpuManagerPolicy string |
默认值:"None" |
cpuManagerPolicyOptions map[string]string |
默认值:nil |
cpuManagerReconcilePeriod meta/v1.Duration |
|
memoryManagerPolicy string |
默认值:"none" |
topologyManagerPolicy string |
默认值:"none" |
topologyManagerScope string |
默认值:"container" |
topologyManagerPolicyOptions map[string]string | TopologyManagerPolicyOptions 是一组 key=value 键值映射,容许设置额外的选项来微调拓扑管理器策略的行为。 需要同时启用 "TopologyManager" 和 "TopologyManagerPolicyOptions" 特性门控。 默认值:nil |
qosReserved map[string]string |
默认值:nil |
runtimeRequestTimeout meta/v1.Duration |
默认值:"2m" |
hairpinMode string |
一般而言,用户必须设置 默认值:"promiscuous-bridge" |
maxPods int32 |
默认值:110 |
podCIDR string |
默认值:"" |
podPidsLimit int64 |
默认值:-1 |
resolvConf string |
如果此值设置为空字符串,则会覆盖 DNS 解析的默认配置, 本质上相当于禁用了 DNS 查询。 默认值:"/etc/resolv.conf" |
runOnce bool |
默认值:false |
cpuCFSQuota bool |
默认值:true |
cpuCFSQuotaPeriod meta/v1.Duration |
默认值:"100ms" |
nodeStatusMaxImages int32 |
注意:如果设置为 -1,则不会对镜像数量做限制;如果设置为 0,则不会返回任何镜像。 默认值:50 |
maxOpenFiles int64 |
默认值:1000000 |
contentType string |
默认值:"application/vnd.kubernetes.protobuf" |
kubeAPIQPS int32 |
默认值:50 |
kubeAPIBurst int32 |
默认值:100 |
serializeImagePulls bool |
默认值:true |
maxParallelImagePulls int32 | maxParallelImagePulls 设置并行拉取镜像的最大数量。 如果 serializeImagePulls 为 true,则无法设置此字段。 把它设置为 nil 意味着没有限制。 默认值:true |
evictionHard map[string]string |
默认值:
|
evictionSoft map[string]string |
默认值:nil |
evictionSoftGracePeriod map[string]string |
默认值:nil |
evictionPressureTransitionPeriod meta/v1.Duration |
默认值:"5m" |
evictionMaxPodGracePeriod int32 |
注意:由于 Issue #64530 的原因,系统中存在一个缺陷,即此处所设置的值会在软性逐出时覆盖 Pod 的宽限期设置,从而有可能增加 Pod 上原本设置的宽限期限时长。 这个缺陷会在未来版本中修复。 默认值:0 |
evictionMinimumReclaim map[string]string |
默认值:nil |
podsPerCore int32 |
默认值:0 |
enableControllerAttachDetach bool |
注意:kubelet 不支持挂接 CSI 卷和解除挂接, 因此对于该用例,此选项必须为 true。 默认值:true |
protectKernelDefaults bool |
默认值:false |
makeIPTablesUtilChains bool |
默认值:true |
iptablesMasqueradeBit int32 |
已弃用:不再有任何效果。 默认值:14 |
iptablesDropBit int32 |
已弃用:不再有任何效果。 默认值:15 |
featureGates map[string]bool |
默认值:nil |
failSwapOn bool |
默认值:true |
memorySwap MemorySwapConfiguration |
|
containerLogMaxSize string |
默认值:"10Mi" |
containerLogMaxFiles int32 |
默认值:"5" |
configMapAndSecretChangeDetectionStrategy ResourceChangeDetectionStrategy |
默认值:"Watch" |
systemReserved map[string]string |
目前仅支持 CPU 和内存。更多细节可参见 https://kubernetes.io/zh-cn/docs/concepts/configuration/manage-resources-containers/ 。 默认值:Nil |
kubeReserved map[string]string |
默认值:Nil |
reservedSystemCPUs [必需]string |
|
showHiddenMetricsForVersion string |
默认值:"" |
systemReservedCgroup string |
默认值:"" |
kubeReservedCgroup string |
默认值:"" |
enforceNodeAllocatable []string | 此标志设置 kubelet 需要执行的各类节点可分配资源策略。此字段接受一组选项列表。
可接受的选项有 如果设置了 如果列表中包含 如果列表中包含 这个字段只有在 参阅Node Allocatable 了解进一步的信息。 默认值:["pods"] |
allowedUnsafeSysctls []string | 用逗号分隔的白名单列表,其中包含不安全的 sysctl 或 sysctl 模式(以 不安全的 sysctl 组有 例如:" 默认值:[] |
volumePluginDir string |
默认值:"/usr/libexec/kubernetes/kubelet-plugins/volume/exec/" |
providerID string |
默认值:"" |
kernelMemcgNotification bool |
默认值:false |
logging [必需]LoggingConfiguration |
默认值:
|
enableSystemLogHandler bool |
默认值:true |
enableSystemLogQuery bool |
默认值:false |
shutdownGracePeriod meta/v1.Duration |
默认值:"0s" |
shutdownGracePeriodCriticalPods meta/v1.Duration |
默认值:"0s" |
shutdownGracePeriodByPodPriority []ShutdownGracePeriodByPodPriority |
数组中的每个表项代表的是节点关闭时 Pod 的体面终止时间;这里的 Pod 的优先级类介于列表中当前优先级类值和下一个表项的优先级类值之间。 例如,要赋予关键 Pod 10 秒钟时间来关闭,赋予优先级 >=10000 Pod 20 秒钟时间来关闭, 赋予其余的 Pod 30 秒钟来关闭。 shutdownGracePeriodByPodPriority:
在退出之前,kubelet 要等待的时间上限为节点上所有优先级类的
当 默认值:nil |
reservedMemory []MemoryReservation |
此参数仅在内存管理器功能特性语境下有意义。内存管理器不会为容器负载分配预留内存。
例如,如果你的 NUMA0 节点内存为 10Gi, 你可以设置不同数量的 NUMA 节点和内存类型。你也可以完全忽略这个字段,不过你要清楚, 所有 NUMA 节点上预留内存的总量要等于通过 node allocatable 设置的内存量。 如果至少有一个节点可分配参数设置值非零,则你需要设置至少一个 NUMA 节点。 此外,避免如下设置:
默认值:nil |
enableProfilingHandler bool |
默认值:true |
enableDebugFlagsHandler bool |
默认值:true |
seccompDefault bool |
默认值:false |
memoryThrottlingFactor float64 | 当设置 cgroupv2 减小此系数会为容器控制组设置较低的 high 限制值,从而增大回收压力;反之, 增大此系数会降低回收压力。更多细节参见 https://kep.k8s.io/2570。 默认值:0.8 |
registerWithTaints []core/v1.Taint |
默认值:nil |
registerNode bool |
默认值:true |
tracing TracingConfiguration | tracing 为 OpenTelemetry 追踪客户端设置版本化的配置信息。 参阅 https://kep.k8s.io/2832 了解更多细节。 |
localStorageCapacityIsolation bool | localStorageCapacityIsolation 启用本地临时存储隔离特性。默认设置为 true。 此特性允许用户为容器的临时存储设置请求/限制,并以类似的方式管理 cpu 和 memory 的请求/限制。 此特性还允许为 emptyDir 卷设置 sizeLimit,如果卷所用的磁盘超过此限制将触发 Pod 驱逐。 此特性取决于准确测定根文件系统磁盘用量的能力。对于 kind rootless 这类系统, 如果不支持此能力,则 LocalStorageCapacityIsolation 特性应被禁用。 一旦禁用,用户不应该为容器的临时存储设置请求/限制,也不应该为 emptyDir 设置 sizeLimit。 默认值:true |
containerRuntimeEndpoint [必需]string | containerRuntimeEndpoint 是容器运行时的端点。 Linux 支持 UNIX 域套接字,而 Windows 支持命名管道和 TCP 端点。 示例:'unix://path/to/runtime.sock', 'npipe:////./pipe/runtime'。 |
imageServiceEndpoint string | imageServiceEndpoint 是容器镜像服务的端点。 Linux 支持 UNIX 域套接字,而 Windows 支持命名管道和 TCP 端点。 示例:'unix:///path/to/runtime.sock'、'npipe:////./pipe/runtime'。 如果未指定,则使用 containerRuntimeEndpoint 中的值。 |
SerializedNodeConfigSource
SerializedNodeConfigSource 允许对 v1.NodeConfigSource
执行序列化操作。
这一类型供 kubelet 内部使用,以便跟踪动态配置的检查点。
此资源存在于 kubeletconfig API 组是因为它被当做是对 kubelet 的一种版本化输入。
字段 | 描述 |
---|---|
apiVersion string | kubelet.config.k8s.io/v1beta1 |
kind string | SerializedNodeConfigSource |
source core/v1.NodeConfigSource |
|
CredentialProvider
出现在:
CredentialProvider 代表的是要被 kubelet 调用的一个 exec 插件。
这一插件只会在所拉取的镜像与该插件所处理的镜像匹配时才会被调用(参见 matchImages
)。
字段 | 描述 |
---|---|
name [必需]string |
|
matchImages [必需][]string |
对类似 镜像与
|
defaultCacheDuration [必需]meta/v1.Duration |
|
apiVersion [必需]string | 要求 exec 插件 CredentialProviderRequest 请求的输入版本。 所返回的 CredentialProviderResponse 必须使用与输入相同的编码版本。当前支持的值有:
|
args []string | 在执行插件可执行文件时要传递给命令的参数。 |
env []ExecEnvVar |
|
ExecEnvVar
出现在:
ExecEnvVar 用来在执行基于 exec 的凭据插件时设置环境变量。
字段 | 描述 |
---|---|
name [必需]string | 无描述。 |
value [必需]string | 无描述。 |
KubeletAnonymousAuthentication
出现在:
字段 | 描述 |
---|---|
enabled bool |
|
KubeletAuthentication
出现在:
字段 | 描述 |
---|---|
x509 KubeletX509Authentication |
|
webhook KubeletWebhookAuthentication |
|
anonymous KubeletAnonymousAuthentication |
|
KubeletAuthorization
出现在:
字段 | 描述 |
---|---|
mode KubeletAuthorizationMode |
|
webhook KubeletWebhookAuthorization |
|
KubeletAuthorizationMode
(string
类型的别名)
出现在:
KubeletWebhookAuthentication
出现在:
字段 | 描述 |
---|---|
enabled bool |
|
cacheTTL meta/v1.Duration |
|
KubeletWebhookAuthorization
出现在:
字段 | 描述 |
---|---|
cacheAuthorizedTTL meta/v1.Duration |
|
cacheUnauthorizedTTL meta/v1.Duration |
|
KubeletX509Authentication
出现在:
字段 | 描述 |
---|---|
clientCAFile string |
|
MemoryReservation
出现在:
MemoryReservation 为每个 NUMA 节点设置不同类型的内存预留。
字段 | 描述 |
---|---|
numaNode [必需]int32 | NUMA 节点 |
limits [必需]core/v1.ResourceList | 资源列表 |
MemorySwapConfiguration
出现在:
字段 | 描述 |
---|---|
swapBehavior string |
|
ResourceChangeDetectionStrategy
(string
类型的别名)
出现在:
ResourceChangeDetectionStrategy 给出的是内部管理器(ConfigMap、Secret) 用来发现对象变化的模式。
ShutdownGracePeriodByPodPriority
出现在:
ShutdownGracePeriodByPodPriority 基于 Pod 关联的优先级类数值来为其设置关闭宽限时间。
字段 | 描述 |
---|---|
priority [必需]int32 |
|
shutdownGracePeriodSeconds [必需]int64 |
|
FormatOptions
出现在:
FormatOptions 包含为不同日志格式提供的选项。
字段 | 描述 |
---|---|
json [必需]JSONOptions | [Alpha] JSON 包含记录 "json" 格式日志的选项。 只有 LoggingAlphaOptions 特性门控被启用时才可用。 |
JSONOptions
出现在:
JSONOptions 包含为 "json" 日志格式提供的选项。
字段 | 描述 |
---|---|
splitStream [必需]bool | [Alpha] |
infoBufferSize [必需]k8s.io/apimachinery/pkg/api/resource.QuantityValue | [Alpha] |
LogFormatFactory
LogFormatFactory 提供了对某些附加的、非默认的日志格式的支持。
LoggingConfiguration
出现在:
LoggingConfiguration 包含日志选项。
字段 | 描述 |
---|---|
format [必需]string |
|
flushFrequency [必需]TimeOrMetaDuration | 日志清洗之间的最大时间间隔。 如果是字符串,则解析为持续时间(例如 "1s")。 如果是整数,则表示为最大纳秒数(例如 1s = 1000000000)。 如果所选的日志后端在写入日志消息时未缓冲,则被忽略。 |
verbosity [必需]VerbosityLevel |
|
vmodule [必需]VModuleConfiguration |
|
options [必需]FormatOptions | [Alpha] |
LoggingOptions
LoggingOptions
可以与 ValidateAndApplyWithOptions
一起使用,以覆盖某些全局默认值。
字段 | 描述 |
---|---|
ErrorStream [必需]io.Writer |
|
InfoStream [必需]io.Writer |
|
TimeOrMetaDuration
出现在:
TimeOrMetaDuration
仅出于向后兼容 flushFrequency
字段而存在,
新字段应使用
metav1.Duration
。
字段 | 描述 |
---|---|
Duration [必需]meta/v1.Duration |
|
- [必需]bool |
|
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 的详细程度(verbosity)阈值。