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.org.tw/pkg/crypto/tls/#pkg-constants)。預設值:nil

tlsMinVersion
string

tlsMinVersion 是支援的最低 TLS 版本。值來自 tls 包常量(https://golang.org.tw/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.club.tw/docs/tasks/administer-cluster/reserve-compute-resources。預設值:nil

kubeReserved
map[string]string

kubeReserved 是資源名稱=資源數量(例如 cpu=200m,memory=150G)對的集合,描述了為 kubernetes 系統元件保留的資源。目前支援 cpu、memory 和根檔案系統的本地儲存。更多詳情請參閱 https://kubernetes.club.tw/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)