kube-scheduler

Synopsis

Kubernetes 排程器是一個控制平面程序,它將 Pod 分配給節點。排程器根據約束和可用資源,確定排程佇列中每個 Pod 的有效節點放置位置。然後,排程器對每個有效節點進行排序,並將 Pod 繫結到合適的節點。叢集中可以使用多個不同的排程器;kube-scheduler 是參考實現。有關排程和 kube-scheduler 元件的更多資訊,請參閱 scheduling

kube-scheduler [flags]

Options

--allow-metric-labels stringToString     預設: []

度量標籤到值對映允許列表。鍵的格式為 <MetricName>,<LabelName>。值的格式為 <allowed_value>,<allowed_value>...例如:metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3' metric2,label1='v1,v2,v3'。

--allow-metric-labels-manifest string

包含允許列表對映的清單檔案的路徑。檔案的格式與 --allow-metric-labels 標誌相同。請注意,--allow-metric-labels 標誌將覆蓋清單檔案。

--authentication-kubeconfig string

指向 'core' Kubernetes 伺服器的 kubeconfig 檔案,該檔案具有建立 tokenreviews.authentication.k8s.io 所需的足夠許可權。此項是可選的。如果為空,所有 token 請求都被視為匿名的,並且不會在叢集中查詢客戶端 CA。

--authentication-skip-lookup

如果為 false,則使用 authentication-kubeconfig 從叢集中查詢缺失的認證配置。

--authentication-token-webhook-cache-ttl duration     預設值: 10s

從 webhook 令牌身份驗證器快取響應的持續時間。

--authentication-tolerate-lookup-failure     預設值: true

如果為 true,則查詢叢集中缺失的認證配置的失敗不會被視為致命錯誤。請注意,這可能導致所有請求都被視為匿名的。

--authorization-always-allow-paths strings     預設值: "/healthz,/readyz,/livez"

在授權期間要跳過的 HTTP 路徑列表,即這些路徑在不聯絡 'core' Kubernetes 伺服器的情況下即可獲得授權。

--authorization-kubeconfig string

指向 'core' Kubernetes 伺服器的 kubeconfig 檔案,該檔案具有建立 subjectaccessreviews.authorization.k8s.io 所需的足夠許可權。此項是可選的。如果為空,所有未被授權跳過的請求都將被禁止。

--authorization-webhook-cache-authorized-ttl duration     預設值: 10s

快取 webhook 授權器“已授權”響應的持續時間。

--authorization-webhook-cache-unauthorized-ttl duration     預設值: 10s

快取 webhook 授權器“未授權”響應的持續時間。

--bind-address string     預設: 0.0.0.0

用於監聽 --secure-port 埠的 IP 地址。關聯的介面必須能夠被叢集的其他部分以及 CLI/Web 客戶端訪問。如果為空或未指定地址 (0.0.0.0 或 ::),則將使用所有介面和 IP 地址族。

--cert-dir string

TLS 證書所在的目錄。如果提供了 --tls-cert-file 和 --tls-private-key-file,則將忽略此標誌。

--client-ca-file string

如果設定,則任何使用由 client-ca-file 中的某個證書頒發機構簽名的客戶端證書提出的請求,都將被驗證為與客戶端證書的 CommonName 對應的身份。

--config string

配置檔案的路徑。

--contention-profiling     預設值: true

已棄用:如果在啟用分析的情況下,則啟用阻塞分析。如果指定了 --config 的配置檔案,則忽略此引數。

--disable-http2-serving

如果為 true,則停用 HTTP2 服務 [預設值=false]

--disabled-metrics strings

此標誌提供了一個逃生艙口,用於處理行為異常的指標。您必須提供完全限定的指標名稱才能停用它。免責宣告:停用指標的優先順序高於顯示隱藏指標。

--emulated-version strings

不同元件模擬其功能(API、功能等)的版本。
如果設定,元件將模擬此版本而不是底層二進位制版本。
版本格式只能是 major.minor,例如:“--emulated-version=wardle=1.2,kube=1.31”。
選項是:kube=1.31..1.33(預設:1.33)
如果未指定元件,則預設為“kube”

--feature-gates colonSeparatedMultimapStringString

逗號分隔的元件:key=value 對列表,描述不同元件的 Alpha/實驗性功能的特性門。
如果未指定元件,則預設為“kube”。此標誌可以重複呼叫。例如:--feature-gates 'wardle:featureA=true,wardle:featureB=false' --feature-gates 'kube:featureC=true' 選項為
kube:APIResponseCompression=true|false (BETA - 預設=true)
kube:APIServerIdentity=true|false (BETA - 預設=true)
kube:APIServerTracing=true|false (BETA - 預設=true)
kube:APIServingWithRoutine=true|false (ALPHA - 預設=false)
kube:AllAlpha=true|false (ALPHA - 預設=false)
kube:AllBeta=true|false (BETA - 預設=false)
kube:AllowParsingUserUIDFromCertAuth=true|false (BETA - 預設=true)
kube:AllowUnsafeMalformedObjectDeletion=true|false (ALPHA - 預設=false)
kube:AnonymousAuthConfigurableEndpoints=true|false (BETA - 預設=true)
kube:AuthorizeNodeWithSelectors=true|false (BETA - 預設=true)
kube:AuthorizeWithSelectors=true|false (BETA - 預設=true)
kube:CBORServingAndStorage=true|false (ALPHA - 預設=false)
kube:CPUManagerPolicyAlphaOptions=true|false (ALPHA - 預設=false)
kube:CPUManagerPolicyBetaOptions=true|false (BETA - 預設=true)
kube:CSIVolumeHealth=true|false (ALPHA - 預設=false)
kube:ClientsAllowCBOR=true|false (ALPHA - 預設=false)
kube:ClientsPreferCBOR=true|false (ALPHA - 預設=false)
kube:CloudControllerManagerWebhook=true|false (ALPHA - 預設=false)
kube:ClusterTrustBundle=true|false (BETA - 預設=false)
kube:ClusterTrustBundleProjection=true|false (BETA - 預設=false)
kube:ComponentFlagz=true|false (ALPHA - 預設=false)
kube:ComponentStatusz=true|false (ALPHA - 預設=false)
kube:ConcurrentWatchObjectDecode=true|false (BETA - 預設=false)
kube:ConsistentListFromCache=true|false (BETA - 預設=true)
kube:ContainerCheckpoint=true|false (BETA - 預設=true)
kube:ContainerStopSignals=true|false (ALPHA - 預設=false)
kube:ContextualLogging=true|false (BETA - 預設=true)
kube:CoordinatedLeaderElection=true|false (BETA - 預設=false)
kube:CrossNamespaceVolumeDataSource=true|false (ALPHA - 預設=false)
kube:CustomCPUCFSQuotaPeriod=true|false (ALPHA - 預設=false)
kube:DRAAdminAccess=true|false (ALPHA - 預設=false)
kube:DRADeviceTaints=true|false (ALPHA - 預設=false)
kube:DRAPartitionableDevices=true|false (ALPHA - 預設=false)
kube:DRAPrioritizedList=true|false (ALPHA - 預設=false)
kube:DRAResourceClaimDeviceStatus=true|false (BETA - 預設=true)
kube:DeclarativeValidation=true|false (BETA - 預設=true)
kube:DeclarativeValidationTakeover=true|false (BETA - 預設=false)
kube:DeploymentReplicaSetTerminatingReplicas=true|false (ALPHA - 預設=false)
kube:DisableAllocatorDualWrite=true|false (BETA - 預設=false)
kube:DisableCPUQuotaWithExclusiveCPUs=true|false (BETA - 預設=true)
kube:DynamicResourceAllocation=true|false (BETA - 預設=false)
kube:EventedPLEG=true|false (ALPHA - 預設=false)
kube:ExternalServiceAccountTokenSigner=true|false (ALPHA - 預設=false)
kube:GracefulNodeShutdown=true|false (BETA - 預設=true)
kube:GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 預設=true)
kube:HPAConfigurableTolerance=true|false (ALPHA - 預設=false)
kube:HPAScaleToZero=true|false (ALPHA - 預設=false)
kube:ImageMaximumGCAge=true|false (BETA - 預設=true)
kube:ImageVolume=true|false (BETA - 預設=false)
kube:InOrderInformers=true|false (BETA - 預設=true)
kube:InPlacePodVerticalScaling=true|false (BETA - 預設=true)
kube:InPlacePodVerticalScalingExclusiveCPUs=true|false (ALPHA - 預設=false)
kube:InTreePluginPortworxUnregister=true|false (ALPHA - 預設=false)
kube:InformerResourceVersion=true|false (ALPHA - 預設=false)
kube:JobManagedBy=true|false (BETA - 預設=true)
kube:JobPodReplacementPolicy=true|false (BETA - 預設=true)
kube:KubeletCgroupDriverFromCRI=true|false (BETA - 預設=true)
kube:KubeletCrashLoopBackOffMax=true|false (ALPHA - 預設=false)
kube:KubeletEnsureSecretPulledImages=true|false (ALPHA - 預設=false)
kube:KubeletFineGrainedAuthz=true|false (BETA - 預設=true)
kube:KubeletInUserNamespace=true|false (ALPHA - 預設=false)
kube:KubeletPSI=true|false (ALPHA - 預設=false)
kube:KubeletPodResourcesDynamicResources=true|false (ALPHA - 預設=false)
kube:KubeletPodResourcesGet=true|false (ALPHA - 預設=false)
kube:KubeletSeparateDiskGC=true|false (BETA - 預設=true)
kube:KubeletServiceAccountTokenForCredentialProviders=true|false (ALPHA - 預設=false)
kube:KubeletTracing=true|false (BETA - 預設=true)
kube:ListFromCacheSnapshot=true|false (ALPHA - 預設=false)
kube:LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (BETA - 預設=false)
kube:LoggingAlphaOptions=true|false (ALPHA - 預設=false)
kube:LoggingBetaOptions=true|false (BETA - 預設=true)
kube:MatchLabelKeysInPodTopologySpread=true|false (BETA - 預設=true)
kube:MaxUnavailableStatefulSet=true|false (ALPHA - 預設=false)
kube:MemoryQoS=true|false (ALPHA - 預設=false)
kube:MutableCSINodeAllocatableCount=true|false (ALPHA - 預設=false)
kube:MutatingAdmissionPolicy=true|false (ALPHA - 預設=false)
kube:NodeLogQuery=true|false (BETA - 預設=false)
kube:NodeSwap=true|false (BETA - 預設=true)
kube:OpenAPIEnums=true|false (BETA - 預設=true)
kube:OrderedNamespaceDeletion=true|false (BETA - 預設=true)
kube:PodAndContainerStatsFromCRI=true|false (ALPHA - 預設=false)
kube:PodDeletionCost=true|false (BETA - 預設=true)
kube:PodLevelResources=true|false (ALPHA - 預設=false)
kube:PodLifecycleSleepAction=true|false (BETA - 預設=true)
kube:PodLifecycleSleepActionAllowZero=true|false (BETA - 預設=true)
kube:PodLogsQuerySplitStreams=true|false (ALPHA - 預設=false)
kube:PodObservedGenerationTracking=true|false (ALPHA - 預設=false)
kube:PodReadyToStartContainersCondition=true|false (BETA - 預設=true)
kube:PodTopologyLabelsAdmission=true|false (ALPHA - 預設=false)
kube:PortForwardWebsockets=true|false (BETA - 預設=true)
kube:PreferSameTrafficDistribution=true|false (ALPHA - 預設=false)
kube:ProcMountType=true|false (BETA - 預設=true)
kube:QOSReserved=true|false (ALPHA - 預設=false)
kube:RecoverVolumeExpansionFailure=true|false (BETA - 預設=true)
kube:ReduceDefaultCrashLoopBackOffDecay=true|false (ALPHA - 預設=false)
kube:RelaxedDNSSearchValidation=true|false (BETA - 預設=true)
kube:RelaxedEnvironmentVariableValidation=true|false (BETA - 預設=true)
kube:ReloadKubeletServerCertificateFile=true|false (BETA - 預設=true)
kube:RemoteRequestHeaderUID=true|false (BETA - 預設=true)
kube:ResilientWatchCacheInitialization=true|false (BETA - 預設=true)
kube:ResourceHealthStatus=true|false (ALPHA - 預設=false)
kube:RotateKubeletServerCertificate=true|false (BETA - 預設=true)
kube:RuntimeClassInImageCriApi=true|false (ALPHA - 預設=false)
kube:SELinuxChangePolicy=true|false (BETA - 預設=true)
kube:SELinuxMount=true|false (BETA - 預設=false)
kube:SELinuxMountReadWriteOncePod=true|false (BETA - 預設=true)
kube:SchedulerAsyncPreemption=true|false (BETA - 預設=true)
kube:SchedulerPopFromBackoffQ=true|false (BETA - 預設=true)
kube:SchedulerQueueingHints=true|false (BETA - 預設=true)
kube:SeparateTaintEvictionController=true|false (BETA - 預設=true)
kube:ServiceAccountNodeAudienceRestriction=true|false (BETA - 預設=true)
kube:StorageCapacityScoring=true|false (ALPHA - 預設=false)
kube:StorageVersionAPI=true|false (ALPHA - 預設=false)
kube:StorageVersionHash=true|false (BETA - 預設=true)
kube:StorageVersionMigrator=true|false (ALPHA - 預設=false)
kube:StreamingCollectionEncodingToJSON=true|false (BETA - 預設=true)
kube:StreamingCollectionEncodingToProtobuf=true|false (BETA - 預設=true)
kube:StrictIPCIDRValidation=true|false (ALPHA - 預設=false)
kube:StructuredAuthenticationConfiguration=true|false (BETA - 預設=true)
kube:SupplementalGroupsPolicy=true|false (BETA - 預設=true)
kube:SystemdWatchdog=true|false (BETA - 預設=true)
kube:TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 預設=false)
kube:TopologyManagerPolicyBetaOptions=true|false (BETA - 預設=true)
kube:TranslateStreamCloseWebsocketRequests=true|false (BETA - 預設=true)
kube:UnauthenticatedHTTP2DOSMitigation=true|false (BETA - 預設=true)
kube:UnknownVersionInteroperabilityProxy=true|false (ALPHA - 預設=false)
kube:UserNamespacesPodSecurityStandards=true|false (ALPHA - 預設=false)
kube:UserNamespacesSupport=true|false (BETA - 預設=true)
kube:VolumeAttributesClass=true|false (BETA - 預設=false)
kube:WatchCacheInitializationPostStartHook=true|false (BETA - 預設=false)
kube:WatchList=true|false (BETA - 預設=false)
kube:WatchListClient=true|false (BETA - 預設=false)
kube:WinDSR=true|false (BETA - 預設=true)
kube:WinOverlay=true|false (BETA - 預設=true)
kube:WindowsCPUAndMemoryAffinity=true|false (ALPHA - 預設=false)
kube:WindowsGracefulNodeShutdown=true|false (ALPHA - 預設=false)

-h, --help

kube-scheduler 的幫助資訊

--http2-max-streams-per-connection int

伺服器為每個 HTTP/2 連線允許客戶端的最大流數。零表示使用 Go 的預設值。

--kube-api-burst int32     預設值: 100

已棄用:與 Kubernetes API 伺服器通訊時使用的突發流量。如果指定了 --config 的配置檔案,則忽略此引數。

--kube-api-content-type string     預設值: "application/vnd.kubernetes.protobuf"

已棄用:傳送到 API 伺服器的請求的內容型別。如果指定了 --config 的配置檔案,則忽略此引數。

--kube-api-qps float     預設值: 50

已棄用:與 Kubernetes API 伺服器通訊時使用的 QPS。如果指定了 --config 的配置檔案,則忽略此引數。

--kubeconfig string

已棄用:包含授權和主節點位置資訊的 kubeconfig 檔案。如果指定了 --config 的配置檔案,則忽略此引數。

--leader-elect     預設值: true

啟動領導者選舉客戶端,並在執行主迴圈之前獲得領導權。在運行復制元件以實現高可用性時啟用此選項。

--leader-elect-lease-duration duration     預設值: 15s

非領導者候選人觀察到領導者續期後,在嘗試獲取一個已由領導者但未續期的領導者槽位之前等待的時間。這實際上是領導者停止後被另一個候選者取代的最長持續時間。僅在啟用領導者選舉時適用。

--leader-elect-renew-deadline duration     預設值: 10s

在成為領導者之前,活躍的領導者嘗試續期領導者槽位的間隔。此值必須小於租約持續時間。僅在啟用領導者選舉時適用。

--leader-elect-resource-lock string     預設值: "leases"

在領導者選舉期間用於鎖定的資源物件的型別。支援的選項為 'leases'。

--leader-elect-resource-name string     預設值: "kube-scheduler"

在領導者選舉期間用於鎖定的資源物件的名稱。

--leader-elect-resource-namespace string     預設值: "kube-system"

在領導者選舉期間用於鎖定的資源物件的名稱空間。

--leader-elect-retry-period duration     預設值: 2s

客戶端在嘗試獲取和續期領導權之間應該等待的時間。僅在啟用領導者選舉時適用。

--log-flush-frequency duration     預設: 5s

日誌重新整理之間的最大秒數

--log-text-info-buffer-size quantity

[Alpha] 在具有拆分輸出流的文字格式中,資訊訊息可以緩衝一段時間以提高效能。零位元組的預設值停用緩衝。大小可以指定為位元組數 (512),千的倍數 (1K),1024 的倍數 (2Ki),或這些的冪 (3M, 4G, 5Mi, 6Gi)。啟用 LoggingAlphaOptions 功能門即可使用此選項。

--log-text-split-stream

[Alpha] 在文字格式中,將錯誤訊息寫入 stderr,將資訊訊息寫入 stdout。預設是將單個流寫入 stdout。啟用 LoggingAlphaOptions 功能門以使用此功能。

--logging-format string     預設: "text"

設定日誌格式。允許的格式:“text”。

--master string

Kubernetes API 伺服器的地址(覆蓋 kubeconfig 中的任何值)

--permit-address-sharing

如果為 true,則在繫結埠時將使用 SO_REUSEADDR。這允許同時繫結到萬用字元 IP(如 0.0.0.0)和特定 IP,並避免等待核心釋放 TIME_WAIT 狀態的套接字。[預設值=false]

--permit-port-sharing

如果為 true,則在繫結埠時將使用 SO_REUSEPORT,這允許一個以上的例項繫結到相同的地址和埠。[預設值=false]

--pod-max-in-unschedulable-pods-duration duration     預設值: 5m0s

已棄用:Pod 在 unschedulablePods 中停留的最長時間。如果 Pod 在 unschedulablePods 中停留的時間超過此值,則 Pod 將從 unschedulablePods 移至 backoffQ 或 activeQ。此標誌已被棄用,將在未來版本中刪除。

--profiling     預設: true

已棄用:透過 Web 介面 host:port/debug/pprof/ 啟用分析。如果指定了 --config 的配置檔案,則忽略此引數。

--requestheader-allowed-names strings

允許提供 --requestheader-username-headers 中指定使用者名稱的客戶端證書通用名稱列表。如果為空,則允許透過 --requestheader-client-ca-file 中的證書頒發機構驗證的任何客戶端證書。

--requestheader-client-ca-file string

用於在信任 --requestheader-username-headers 指定的使用者名稱前驗證傳入請求上的客戶端證書的根證書捆綁包。警告:通常不要依賴於對傳入請求的授權。

--requestheader-extra-headers-prefix strings     預設值: "x-remote-extra-"

要檢查的請求頭字首列表。建議使用 X-Remote-Extra-。

--requestheader-group-headers strings     預設值: "x-remote-group"

要檢查組的請求頭列表。建議使用 X-Remote-Group。

--requestheader-uid-headers strings

要檢查 UID 的請求頭列表。建議使用 X-Remote-Uid。需要啟用 RemoteRequestHeaderUID 功能。

--requestheader-username-headers strings     預設值: "x-remote-user"

要檢查使用者名稱的請求頭列表。X-Remote-User 是常見的。

--secure-port int     預設值: 10259

用於提供帶身份驗證和授權的 HTTPS 的埠。如果為 0,則不提供 HTTPS。

--show-hidden-metrics-for-version string

您希望顯示隱藏指標的前一個版本的版本號。只有前一個次要版本才具有意義,其他值將不允許。格式為 <major>.<minor>,例如:'1.16'。此格式的目的是確保您有機會注意到下一個版本是否隱藏了更多指標,而不是在它們在之後釋出的版本中被永久刪除時感到意外。

--tls-cert-file string

包含 HTTPS 的預設 x509 證書的檔案。(CA 證書(如果有)附加在伺服器證書之後)。如果啟用了 HTTPS 服務,並且未提供 --tls-cert-file 和 --tls-private-key-file,則將為公共地址生成一個自簽名證書和金鑰,並將其儲存在 --cert-dir 指定的目錄中。

--tls-cipher-suites strings

伺服器的密碼套件逗號分隔列表。如果省略,將使用預設的 Go 密碼套件。
首選值:TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256。
不安全值:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_RC4_128_SHA。

--tls-min-version string

最低支援的 TLS 版本。可能的值:VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13

--tls-private-key-file string

與 --tls-cert-file 匹配的預設 x509 私鑰檔案。

--tls-sni-cert-key string

一對 x509 證書和私鑰檔案路徑,可以選擇性地字尾帶有完全限定域名(可能帶有字首萬用字元段)的域名模式列表。域名模式也允許 IP 地址,但 IP 地址僅應用於 apiserver 對客戶端請求的 IP 地址具有可見性時。如果沒有提供域名模式,則提取證書的名稱。非萬用字元匹配優先於萬用字元匹配,顯式域名模式優先於提取的名稱。對於多個金鑰/證書對,請多次使用 --tls-sni-cert-key。示例:"example.crt,example.key" 或 "foo.crt,foo.key:*.foo.com,foo.com"。

-v, --v int

用於日誌級別詳細程度的數字

--version version[=true]

--version, --version=raw 列印版本資訊並退出;--version=vX.Y.Z... 設定報告的版本

--vmodule pattern=N,...

用於檔案過濾日誌的模式=N 設定的逗號分隔列表(僅適用於文字日誌格式)

--write-config-to string

如果設定,則將配置值寫入此檔案並退出。

本頁面是自動生成的。

如果你打算報告此頁面存在的問題,請在問題描述中提及此頁面是自動生成的。修復可能需要在 Kubernetes 專案的其他地方進行。

最後修改時間:2025 年 4 月 24 日上午 7:58 PST:v1.33 的元件參考 (05a3c54633)