kube-scheduler

摘要

Kubernetes 排程器是一個控制平面程序,可將 Pod 指派給節點。排程器根據約束和可用資源,判斷排程佇列中每個 Pod 的有效放置節點。然後,排程器對每個有效的節點進行排名,並將 Pod 繫結到合適的節點。叢集中可以使用多個不同的排程器;kube-scheduler 是參考實作。請參閱排程,以取得關於排程和 kube-scheduler 組件的更多資訊。

kube-scheduler [flags]

選項

--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 字串

包含允許清單對應的資訊清單檔案路徑。檔案格式與旗標 --allow-metric-labels 相同。請注意,旗標 --allow-metric-labels 將覆寫資訊清單檔案。

--authentication-kubeconfig 字串

kubeconfig 檔案指向「核心」kubernetes 伺服器,並具有足夠的權限來建立 tokenreviews.authentication.k8s.io。這是選用項目。如果為空,則所有權杖請求都會被視為匿名,並且不會在叢集中查詢用戶端 CA。

--authentication-skip-lookup

如果為 false,則會使用 authentication-kubeconfig 從叢集中查詢遺失的身份驗證組態。

--authentication-token-webhook-cache-ttl 持續時間     預設值: 10 秒

從 webhook 權杖驗證器快取回應的持續時間。

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

如果為 true,則從叢集中查詢遺失的身份驗證組態失敗不會被視為致命錯誤。請注意,這可能會導致身份驗證將所有請求視為匿名。

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

在授權期間要略過的 HTTP 路徑清單,即這些路徑在未聯絡「核心」kubernetes 伺服器的情況下獲得授權。

--authorization-kubeconfig 字串

kubeconfig 檔案指向「核心」kubernetes 伺服器,並具有足夠的權限來建立 subjectaccessreviews.authorization.k8s.io。這是選用項目。如果為空,則所有未被授權略過的請求都會被禁止。

--authorization-webhook-cache-authorized-ttl 持續時間     預設值: 10 秒

從 webhook 授權器快取「已授權」回應的持續時間。

--authorization-webhook-cache-unauthorized-ttl 持續時間     預設值: 10 秒

從 webhook 授權器快取「未授權」回應的持續時間。

--bind-address 字串     預設值: 0.0.0.0

要接聽 --secure-port 連接埠的 IP 位址。叢集的其餘部分以及 CLI/網頁用戶端必須可連線到關聯的介面。如果為空白或未指定的位址 (0.0.0.0 或 ::),則將使用所有介面和 IP 位址系列。

--cert-dir 字串

TLS 憑證所在的目錄。如果提供 --tls-cert-file 和 --tls-private-key-file,則會忽略此旗標。

--client-ca-file 字串

如果設定,則任何提供由 client-ca-file 中授權單位之一簽署的用戶端憑證的請求,都會使用對應於用戶端憑證 CommonName 的身分進行身份驗證。

--config 字串

組態檔的路徑。

--contention-profiling     預設值: true

已棄用:如果已啟用分析,則啟用區塊分析。如果在 --config 中指定組態檔,則會忽略此參數。

--disable-http2-serving

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

--disabled-metrics 字串

此旗標為行為異常的指標提供跳脫機制。您必須提供完整限定的指標名稱才能停用它。免責聲明:停用指標的優先順序高於顯示隱藏指標。

--emulated-version 字串

不同組件模擬其功能(API、功能...)的版本。
如果設定,組件將模擬此版本的行為,而不是基礎二進位版本。
版本格式只能是 major.minor,例如:「--emulated-version=wardle=1.2,kube=1.31」。選項為
kube=1.32..1.32 (預設值=1.32)如果未指定組件,則預設為「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:AllowUnsafeMalformedObjectDeletion=true|false (ALPHA - 預設值=false)
kube:AnonymousAuthConfigurableEndpoints=true|false (BETA - 預設值=true)
kube:AnyVolumeDataSource=true|false (BETA - 預設值=true)
kube:AuthorizeNodeWithSelectors=true|false (BETA - 預設值=true)
kube:AuthorizeWithSelectors=true|false (BETA - 預設值=true)
kube:BtreeWatchCache=true|false (BETA - 預設值=true)
kube:CBORServingAndStorage=true|false (ALPHA - 預設值=false)
kube:CPUManagerPolicyAlphaOptions=true|false (ALPHA - 預設值=false)
kube:CPUManagerPolicyBetaOptions=true|false (BETA - 預設值=true)
kube:CPUManagerPolicyOptions=true|false (BETA - 預設值=true)
kube:CRDValidationRatcheting=true|false (BETA - 預設值=true)
kube:CSIMigrationPortworx=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 (ALPHA - 預設值=false)
kube:ClusterTrustBundleProjection=true|false (ALPHA - 預設值=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:ContextualLogging=true|false (BETA - 預設值=true)
kube:CoordinatedLeaderElection=true|false (ALPHA - 預設值=false)
kube:CrossNamespaceVolumeDataSource=true|false (ALPHA - 預設值=false)
kube:CustomCPUCFSQuotaPeriod=true|false (ALPHA - 預設值=false)
kube:DRAAdminAccess=true|false (ALPHA - 預設值=false)
kube:DRAResourceClaimDeviceStatus=true|false (ALPHA - 預設值=false)
kube:DisableAllocatorDualWrite=true|false (ALPHA - 預設值=false)
kube:DynamicResourceAllocation=true|false (BETA - 預設值=false)
kube:EventedPLEG=true|false (ALPHA - 預設值=false)
kube:ExternalServiceAccountTokenSigner=true|false (ALPHA - 預設值=false)
kube:GracefulNodeShutdown=true|false (BETA - default=true)
kube:GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - default=true)
kube:HPAScaleToZero=true|false (ALPHA - default=false)
kube:HonorPVReclaimPolicy=true|false (BETA - default=true)
kube:ImageMaximumGCAge=true|false (BETA - default=true)
kube:ImageVolume=true|false (ALPHA - default=false)
kube:InPlacePodVerticalScaling=true|false (ALPHA - default=false)
kube:InPlacePodVerticalScalingAllocatedStatus=true|false (ALPHA - default=false)
kube:InPlacePodVerticalScalingExclusiveCPUs=true|false (ALPHA - default=false)
kube:InTreePluginPortworxUnregister=true|false (ALPHA - default=false)
kube:InformerResourceVersion=true|false (ALPHA - default=false)
kube:JobBackoffLimitPerIndex=true|false (BETA - default=true)
kube:JobManagedBy=true|false (BETA - default=true)
kube:JobPodReplacementPolicy=true|false (BETA - default=true)
kube:JobSuccessPolicy=true|false (BETA - default=true)
kube:KubeletCgroupDriverFromCRI=true|false (BETA - default=true)
kube:KubeletCrashLoopBackOffMax=true|false (ALPHA - default=false)
kube:KubeletFineGrainedAuthz=true|false (ALPHA - default=false)
kube:KubeletInUserNamespace=true|false (ALPHA - default=false)
kube:KubeletPodResourcesDynamicResources=true|false (ALPHA - default=false)
kube:KubeletPodResourcesGet=true|false (ALPHA - default=false)
kube:KubeletSeparateDiskGC=true|false (BETA - default=true)
kube:KubeletTracing=true|false (BETA - default=true)
kube:LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (BETA - default=false)
kube:LoggingAlphaOptions=true|false (ALPHA - default=false)
kube:LoggingBetaOptions=true|false (BETA - default=true)
kube:MatchLabelKeysInPodAffinity=true|false (BETA - default=true)
kube:MatchLabelKeysInPodTopologySpread=true|false (BETA - default=true)
kube:MaxUnavailableStatefulSet=true|false (ALPHA - default=false)
kube:MemoryQoS=true|false (ALPHA - default=false)
kube:MultiCIDRServiceAllocator=true|false (BETA - default=false)
kube:MutatingAdmissionPolicy=true|false (ALPHA - default=false)
kube:NFTablesProxyMode=true|false (BETA - default=true)
kube:NodeInclusionPolicyInPodTopologySpread=true|false (BETA - default=true)
kube:NodeLogQuery=true|false (BETA - default=false)
kube:NodeSwap=true|false (BETA - default=true)
kube:OpenAPIEnums=true|false (BETA - default=true)
kube:PodAndContainerStatsFromCRI=true|false (ALPHA - default=false)
kube:PodDeletionCost=true|false (BETA - default=true)
kube:PodLevelResources=true|false (ALPHA - default=false)
kube:PodLifecycleSleepAction=true|false (BETA - default=true)
kube:PodLifecycleSleepActionAllowZero=true|false (ALPHA - default=false)
kube:PodLogsQuerySplitStreams=true|false (ALPHA - default=false)
kube:PodReadyToStartContainersCondition=true|false (BETA - default=true)
kube:PortForwardWebsockets=true|false (BETA - default=true)
kube:ProcMountType=true|false (BETA - default=false)
kube:QOSReserved=true|false (ALPHA - default=false)
kube:RecoverVolumeExpansionFailure=true|false (BETA - default=true)
kube:RecursiveReadOnlyMounts=true|false (BETA - default=true)
kube:RelaxedDNSSearchValidation=true|false (ALPHA - default=false)
kube:RelaxedEnvironmentVariableValidation=true|false (BETA - default=true)
kube:ReloadKubeletServerCertificateFile=true|false (BETA - default=true)
kube:RemoteRequestHeaderUID=true|false (ALPHA - default=false)
kube:ResilientWatchCacheInitialization=true|false (BETA - default=true)
kube:ResourceHealthStatus=true|false (ALPHA - default=false)
kube:RotateKubeletServerCertificate=true|false (BETA - default=true)
kube:RuntimeClassInImageCriApi=true|false (ALPHA - default=false)
kube:SELinuxChangePolicy=true|false (ALPHA - default=false)
kube:SELinuxMount=true|false (ALPHA - default=false)
kube:SELinuxMountReadWriteOncePod=true|false (BETA - default=true)
kube:SchedulerAsyncPreemption=true|false (ALPHA - default=false)
kube:SchedulerQueueingHints=true|false (BETA - default=true)
kube:SeparateCacheWatchRPC=true|false (BETA - default=true)
kube:SeparateTaintEvictionController=true|false (BETA - default=true)
kube:ServiceAccountNodeAudienceRestriction=true|false (BETA - default=true)
kube:ServiceAccountTokenNodeBinding=true|false (BETA - default=true)
kube:ServiceTrafficDistribution=true|false (BETA - default=true)
kube:SidecarContainers=true|false (BETA - default=true)
kube:StorageNamespaceIndex=true|false (BETA - default=true)
kube:StorageVersionAPI=true|false (ALPHA - default=false)
kube:StorageVersionHash=true|false (BETA - default=true)
kube:StorageVersionMigrator=true|false (ALPHA - default=false)
kube:StructuredAuthenticationConfiguration=true|false (BETA - default=true)
kube:SupplementalGroupsPolicy=true|false (ALPHA - default=false)
kube:SystemdWatchdog=true|false (BETA - default=true)
kube:TopologyAwareHints=true|false (BETA - default=true)
kube:TopologyManagerPolicyAlphaOptions=true|false (ALPHA - default=false)
kube:TopologyManagerPolicyBetaOptions=true|false (BETA - default=true)
kube:TranslateStreamCloseWebsocketRequests=true|false (BETA - default=true)
kube:UnauthenticatedHTTP2DOSMitigation=true|false (BETA - default=true)
kube:UnknownVersionInteroperabilityProxy=true|false (ALPHA - default=false)
kube:UserNamespacesPodSecurityStandards=true|false (ALPHA - default=false)
kube:UserNamespacesSupport=true|false (BETA - default=false)
kube:VolumeAttributesClass=true|false (BETA - default=false)
kube:VolumeCapacityPriority=true|false (ALPHA - default=false)
kube:WatchCacheInitializationPostStartHook=true|false (BETA - default=false)
kube:WatchFromStorageWithoutResourceVersion=true|false (BETA - default=false)
kube:WatchList=true|false (BETA - default=true)
kube:WatchListClient=true|false (BETA - default=false)
kube:WinDSR=true|false (ALPHA - default=false)
kube:WinOverlay=true|false (BETA - default=true)
kube:WindowsCPUAndMemoryAffinity=true|false (ALPHA - default=false)
kube:WindowsGracefulNodeShutdown=true|false (ALPHA - default=false)
kube:WindowsHostNetwork=true|false (ALPHA - default=true)

-h, --help

kube-scheduler 的說明

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

伺服器給予用戶端在 HTTP/2 連線中最大串流數量的限制。零表示使用 golang 的預設值。

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

已過時:與 Kubernetes API 伺服器通訊時使用的 burst。如果在 --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     預設值: 15 秒

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

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

實際主節點在停止領導之前嘗試續約領導者槽位的間隔。此值必須小於租賃持續時間。這僅在啟用領導者選舉時適用。

--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     預設值: 2 秒

用戶端在嘗試取得和續約領導權之間應等待的持續時間。這僅在啟用領導者選舉時適用。

--log-flush-frequency duration     預設值: 5 秒

日誌刷新之間的最大秒數

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

[Alpha] 在使用分割輸出串流的文字格式中,資訊訊息可以緩衝一段時間以提高效能。零位元組的預設值會停用緩衝。大小可以指定為位元組數 (512)、1000 的倍數 (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 狀態的 socket。[預設值=false]

--permit-port-sharing

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

--pod-max-in-unschedulable-pods-duration duration     預設值: 5 分鐘 0 秒

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

--profiling     預設值: true

已過時:透過網頁介面 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 位址,但只有在 API 伺服器可見用戶端請求的 IP 位址時才應使用 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,...

用於檔案篩選日誌記錄的 pattern=N 設定的逗號分隔清單(僅適用於文字日誌格式)

--write-config-to string

如果設定,將組態值寫入此檔案並退出。

此頁面為自動產生。

如果您計劃回報此頁面的問題,請在您的問題描述中提及此頁面為自動產生。修正可能需要在 Kubernetes 專案的其他地方進行。

上次修改時間為 2024 年 12 月 12 日下午 2:31 PST:為 v1.32 重新產生元件參考 (f88d4ccd1d)