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 标志指定日志消息的结构。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。建议不设置,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 是每秒注册表拉取次数的限制。该值不能为负数。将其设置为 0 表示没有限制。默认值:5

registryBurst
int32

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

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,则启用阻塞分析。默认值:false

**healthzPort**
int32

**healthzPort**: 本地主机 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 服务器。默认值: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 将在其对应的租约上设置的持续时间。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 的 cgroup 的绝对名称。默认值:""

**systemCgroups**
string

**systemCgroups**: 用于放置所有尚未在容器中的非内核进程的 cgroup 的绝对名称。为空表示没有容器。回滚此标志需要重新启动。如果此字段不为空,则必须指定 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"

**cpuManagerPolicyOptions**
**map[string]string**

**cpuManagerPolicyOptions**: 一组键值对,允许设置额外的选项来微调 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**: 一组键值对,允许设置额外的选项来微调拓扑管理器策略的行为。需要同时启用 "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 应如何为发夹数据包配置容器网桥。设置此标志允许服务中的端点在尝试访问自身服务时回环到自身。值:

  • "promiscuous-bridge":使容器网桥处于混杂模式。
  • "hairpin-veth":在容器 veth 接口上设置发夹标志。
  • "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 服务器通信时允许的突发量。此字段不能为负数。默认值: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 在退出驱逐压力条件之前必须等待的时间。默认值:"5m"

evictionMaxPodGracePeriod
int32

evictionMaxPodGracePeriod 是在响应满足软驱逐阈值而终止 Pod 时允许使用的最大宽限期(以秒为单位)。此值有效地限制了软驱逐期间 Pod 的 terminationGracePeriodSeconds 值。注意:由于问题 #64530,该行为存在一个错误,即该值当前仅在软驱逐期间覆盖宽限期,这可能会增加 Pod 上设置的宽限期。此错误将在未来版本中修复。默认值: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 如果在节点上启用了交换,则启动失败。默认值:true

memorySwap
MemorySwapConfiguration

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

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"

systemReserved
**map[string]string**

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

kubeReserved
**map[string]string**

kubeReserved 是一组 ResourceName=ResourceQuantity(例如 cpu=200m,memory=150G)对,描述了为 Kubernetes 系统组件保留的资源。当前支持 cpu、内存和根文件系统的本地存储。有关更多详细信息,请参阅 https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/。默认值: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 识别用于强制执行 KubeReserved 计算资源预留给 Kubernetes 节点系统守护程序的顶级 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 关联的优先级类值指定 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

reservedMemory
[]MemoryReservation

reservedMemory 为 NUMA 节点指定以逗号分隔的内存预留列表。该参数仅在内存管理器功能的上下文中才有意义。内存管理器不会为容器工作负载分配保留内存。例如,如果您有一个具有 10Gi 内存的 NUMA0,并且 reservedMemory 被指定为在 NUMA0 处保留 1Gi 内存,则内存管理器将假定只有 9Gi 可用于分配。您可以指定不同数量的 NUMA 节点和内存类型。您可以完全省略此参数,但您应该注意,所有 NUMA 节点的保留内存总量应等于节点可分配指定的内存量。如果至少一个节点可分配参数具有非零值,则您需要至少指定一个 NUMA 节点。此外,请避免指定

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

默认值:nil

enableProfilingHandler
bool

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

enableDebugFlagsHandler
bool

enableDebugFlagsHandler 通过 Web 界面 host:port/debug/flags/v 启用标志端点。默认值: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 注册自身时,会将其添加到节点对象中。这仅在 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 中的值。

SerializedNodeConfigSource

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

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

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

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 持有者令牌身份验证相关的设置。

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
string

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

MemoryReservation

出现于

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

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

MemorySwapConfiguration

出现于

字段描述
swapBehavior
string

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

ResourceChangeDetectionStrategy

string 的别名)

出现于

ResourceChangeDetectionStrategy 表示内部管理器(密钥、配置映射)发现对象更改的模式。

ShutdownGracePeriodByPodPriority

出现于

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

字段描述
priority [必填]
int32

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

shutdownGracePeriodSeconds [必填]
**int64**

shutdownGracePeriodSeconds 是以秒为单位的关闭宽限期

本页面由系统自动生成。

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

上次修改时间:2024 年 4 月 19 日太平洋标准时间下午 8:34:手动修复生成的参考中的错误。(30d2c8286e)