kube-proxy

Synopsis

Kubernetes 網路代理執行在每個節點上。它在每個節點上反映 Kubernetes API 定義的服務,並能夠進行簡單的 TCP、UDP 和 SCTP 流轉發,或者在多個後端之間進行 TCP、UDP 和 SCTP 的輪循轉發。服務叢集 IP 和埠目前透過相容 Docker-links 的環境變數來查詢,這些環境變數指定了服務代理開啟的埠。有一個可選的附加元件可以為這些叢集 IP 提供叢集 DNS。使用者必須透過 apiserver API 建立一個服務來配置代理。

kube-proxy [flags]

Options

--add_dir_header

如果為 true,則在日誌訊息的頭部新增檔案目錄

--alsologtostderr

同時向標準錯誤和檔案寫入日誌(當 -logtostderr=true 時無效)

--bind-address string     預設: 0.0.0.0

覆蓋 kube-proxy 關於其節點主 IP 的概念。請注意,名稱是歷史遺留的,kube-proxy 實際上並沒有將任何套接字繫結到此 IP。如果透過 --config 指定了配置檔案,則會忽略此引數。

--bind-address-hard-fail

如果為 true,kube-proxy 將把繫結埠失敗視為致命錯誤並退出

--cleanup

如果為 true,則清理 iptables 和 ipvs 規則然後退出。

--cluster-cidr string

叢集中 Pod 的 CIDR 範圍。(對於雙棧叢集,這可以是以逗號分隔的雙棧 CIDR 範圍對)。當 --detect-local-mode 設定為 ClusterCIDR 時,kube-proxy 會將源 IP 在此範圍內的流量視為本地流量。(否則不使用。)如果透過 --config 指定了配置檔案,則會忽略此引數。

--config string

配置檔案的路徑。

--config-sync-period duration     預設值:15m0s

從 apiserver 重新整理配置的頻率。必須大於 0。

--conntrack-max-per-core int32     預設值:32768

每個 CPU 核心的最大 NAT 連線數(0 表示保持不變並忽略 conntrack-min)。

--conntrack-min int32     預設值:131072

要分配的 conntrack 條目的最小數量,與 conntrack-max-per-core 無關(將 conntrack-max-per-core 設定為 0 以保持不變)。

--conntrack-tcp-be-liberal

透過將 nf_conntrack_tcp_be_liberal 設定為 1 來啟用 TCP 資料包跟蹤的寬鬆模式

--conntrack-tcp-timeout-close-wait duration     預設值:1h0m0s

處於 CLOSE_WAIT 狀態的 TCP 連線的 NAT 超時時間

--conntrack-tcp-timeout-established duration     預設值:24h0m0s

已建立 TCP 連線的空閒超時時間(0 表示保持不變)

--conntrack-udp-timeout duration

未響應 UDP 連線的空閒超時時間(0 表示保持不變)

--conntrack-udp-timeout-stream duration

已確認 UDP 連線的空閒超時時間(0 表示保持不變)

--detect-local-mode LocalMode

用於檢測本地流量的模式。如果透過 --config 指定了配置檔案,則會忽略此引數。

--feature-gates <逗號分隔的 'key=True|False' 對>

描述 alpha/experimental 功能的鍵值對集合。選項包括:
APIResponseCompression=true|false (BETA - 預設值=true)
APIServerIdentity=true|false (BETA - 預設值=true)
APIServerTracing=true|false (BETA - 預設值=true)
APIServingWithRoutine=true|false (ALPHA - 預設值=false)
AllAlpha=true|false (ALPHA - 預設值=false)
AllBeta=true|false (BETA - 預設值=false)
AllowParsingUserUIDFromCertAuth=true|false (BETA - 預設值=true)
AllowUnsafeMalformedObjectDeletion=true|false (ALPHA - 預設值=false)
AnonymousAuthConfigurableEndpoints=true|false (BETA - 預設值=true)
AuthorizeNodeWithSelectors=true|false (BETA - 預設值=true)
AuthorizeWithSelectors=true|false (BETA - 預設值=true)
CBORServingAndStorage=true|false (ALPHA - 預設值=false)
CPUManagerPolicyAlphaOptions=true|false (ALPHA - 預設值=false)
CPUManagerPolicyBetaOptions=true|false (BETA - 預設值=true)
CSIVolumeHealth=true|false (ALPHA - 預設值=false)
ClientsAllowCBOR=true|false (ALPHA - 預設值=false)
ClientsPreferCBOR=true|false (ALPHA - 預設值=false)
CloudControllerManagerWebhook=true|false (ALPHA - 預設值=false)
ClusterTrustBundle=true|false (BETA - 預設值=false)
ClusterTrustBundleProjection=true|false (BETA - 預設值=false)
ComponentFlagz=true|false (ALPHA - 預設值=false)
ComponentStatusz=true|false (ALPHA - 預設值=false)
ConcurrentWatchObjectDecode=true|false (BETA - 預設值=false)
ConsistentListFromCache=true|false (BETA - 預設值=true)
ContainerCheckpoint=true|false (BETA - 預設值=true)
ContainerStopSignals=true|false (ALPHA - 預設值=false)
ContextualLogging=true|false (BETA - 預設值=true)
CoordinatedLeaderElection=true|false (BETA - 預設值=false)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 預設值=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 預設值=false)
DRAAdminAccess=true|false (ALPHA - 預設值=false)
DRADeviceTaints=true|false (ALPHA - 預設值=false)
DRAPartitionableDevices=true|false (ALPHA - 預設值=false)
DRAPrioritizedList=true|false (ALPHA - 預設值=false)
DRAResourceClaimDeviceStatus=true|false (BETA - 預設值=true)
DeclarativeValidation=true|false (BETA - 預設值=true)
DeclarativeValidationTakeover=true|false (BETA - 預設值=false)
DeploymentReplicaSetTerminatingReplicas=true|false (ALPHA - 預設值=false)
DisableAllocatorDualWrite=true|false (BETA - 預設值=false)
DisableCPUQuotaWithExclusiveCPUs=true|false (BETA - 預設值=true)
DynamicResourceAllocation=true|false (BETA - 預設值=false)
EventedPLEG=true|false (ALPHA - 預設值=false)
ExternalServiceAccountTokenSigner=true|false (ALPHA - 預設值=false)
GracefulNodeShutdown=true|false (BETA - 預設值=true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 預設值=true)
HPAConfigurableTolerance=true|false (ALPHA - 預設值=false)
HPAScaleToZero=true|false (ALPHA - 預設值=false)
ImageMaximumGCAge=true|false (BETA - 預設值=true)
ImageVolume=true|false (BETA - 預設值=false)
InOrderInformers=true|false (BETA - 預設值=true)
InPlacePodVerticalScaling=true|false (BETA - 預設值=true)
InPlacePodVerticalScalingExclusiveCPUs=true|false (ALPHA - 預設值=false)
InTreePluginPortworxUnregister=true|false (ALPHA - 預設值=false)
InformerResourceVersion=true|false (ALPHA - 預設值=false)
JobManagedBy=true|false (BETA - 預設值=true)
JobPodReplacementPolicy=true|false (BETA - 預設值=true)
KubeletCgroupDriverFromCRI=true|false (BETA - 預設值=true)
KubeletCrashLoopBackOffMax=true|false (ALPHA - 預設值=false)
KubeletEnsureSecretPulledImages=true|false (ALPHA - 預設值=false)
KubeletFineGrainedAuthz=true|false (BETA - 預設值=true)
KubeletInUserNamespace=true|false (ALPHA - 預設值=false)
KubeletPSI=true|false (ALPHA - 預設值=false)
KubeletPodResourcesDynamicResources=true|false (ALPHA - 預設值=false)
KubeletPodResourcesGet=true|false (ALPHA - 預設值=false)
KubeletSeparateDiskGC=true|false (BETA - 預設值=true)
KubeletServiceAccountTokenForCredentialProviders=true|false (ALPHA - 預設值=false)
KubeletTracing=true|false (BETA - 預設值=true)
ListFromCacheSnapshot=true|false (ALPHA - 預設值=false)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (BETA - 預設值=false)
LoggingAlphaOptions=true|false (ALPHA - 預設值=false)
LoggingBetaOptions=true|false (BETA - 預設值=true)
MatchLabelKeysInPodTopologySpread=true|false (BETA - 預設值=true)
MaxUnavailableStatefulSet=true|false (ALPHA - 預設值=false)
MemoryQoS=true|false (ALPHA - 預設值=false)
MutableCSINodeAllocatableCount=true|false (ALPHA - 預設值=false)
MutatingAdmissionPolicy=true|false (ALPHA - 預設值=false)
NodeLogQuery=true|false (BETA - 預設值=false)
NodeSwap=true|false (BETA - 預設值=true)
OpenAPIEnums=true|false (BETA - 預設值=true)
OrderedNamespaceDeletion=true|false (BETA - 預設值=true)
PodAndContainerStatsFromCRI=true|false (ALPHA - 預設值=false)
PodDeletionCost=true|false (BETA - 預設值=true)
PodLevelResources=true|false (ALPHA - 預設值=false)
PodLifecycleSleepAction=true|false (BETA - 預設值=true)
PodLifecycleSleepActionAllowZero=true|false (BETA - 預設值=true)
PodLogsQuerySplitStreams=true|false (ALPHA - 預設值=false)
PodObservedGenerationTracking=true|false (ALPHA - 預設值=false)
PodReadyToStartContainersCondition=true|false (BETA - 預設值=true)
PodTopologyLabelsAdmission=true|false (ALPHA - 預設值=false)
PortForwardWebsockets=true|false (BETA - 預設值=true)
PreferSameTrafficDistribution=true|false (ALPHA - 預設值=false)
ProcMountType=true|false (BETA - 預設值=true)
QOSReserved=true|false (ALPHA - 預設值=false)
RecoverVolumeExpansionFailure=true|false (BETA - 預設值=true)
ReduceDefaultCrashLoopBackOffDecay=true|false (ALPHA - 預設值=false)
RelaxedDNSSearchValidation=true|false (BETA - 預設值=true)
RelaxedEnvironmentVariableValidation=true|false (BETA - 預設值=true)
ReloadKubeletServerCertificateFile=true|false (BETA - 預設值=true)
RemoteRequestHeaderUID=true|false (BETA - 預設值=true)
ResilientWatchCacheInitialization=true|false (BETA - 預設值=true)
ResourceHealthStatus=true|false (ALPHA - 預設值=false)
RotateKubeletServerCertificate=true|false (BETA - 預設值=true)
RuntimeClassInImageCriApi=true|false (ALPHA - 預設值=false)
SELinuxChangePolicy=true|false (BETA - 預設值=true)
SELinuxMount=true|false (BETA - 預設值=false)
SELinuxMountReadWriteOncePod=true|false (BETA - 預設值=true)
SchedulerAsyncPreemption=true|false (BETA - 預設值=true)
SchedulerPopFromBackoffQ=true|false (BETA - 預設值=true)
SchedulerQueueingHints=true|false (BETA - 預設值=true)
SeparateTaintEvictionController=true|false (BETA - 預設值=true)
ServiceAccountNodeAudienceRestriction=true|false (BETA - 預設值=true)
StorageCapacityScoring=true|false (ALPHA - 預設值=false)
StorageVersionAPI=true|false (ALPHA - 預設值=false)
StorageVersionHash=true|false (BETA - 預設值=true)
StorageVersionMigrator=true|false (ALPHA - 預設值=false)
StreamingCollectionEncodingToJSON=true|false (BETA - 預設值=true)
StreamingCollectionEncodingToProtobuf=true|false (BETA - 預設值=true)
StrictIPCIDRValidation=true|false (ALPHA - 預設值=false)
StructuredAuthenticationConfiguration=true|false (BETA - 預設值=true)
SupplementalGroupsPolicy=true|false (BETA - 預設值=true)
SystemdWatchdog=true|false (BETA - 預設值=true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 預設值=false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 預設值=true)
TranslateStreamCloseWebsocketRequests=true|false (BETA - 預設值=true)
UnauthenticatedHTTP2DOSMitigation=true|false (BETA - 預設值=true)
UnknownVersionInteroperabilityProxy=true|false (ALPHA - 預設值=false)
UserNamespacesPodSecurityStandards=true|false (ALPHA - 預設值=false)
UserNamespacesSupport=true|false (BETA - 預設值=true)
VolumeAttributesClass=true|false (BETA - 預設值=false)
WatchCacheInitializationPostStartHook=true|false (BETA - 預設值=false)
WatchList=true|false (BETA - 預設值=false)
WatchListClient=true|false (BETA - 預設值=false)
WinDSR=true|false (BETA - 預設值=true)
WinOverlay=true|false (BETA - 預設值=true)
WindowsCPUAndMemoryAffinity=true|false (ALPHA - 預設值=false)
WindowsGracefulNodeShutdown=true|false (ALPHA - 預設值=false)
如果透過 --config 指定了配置檔案,則會忽略此引數。

--healthz-bind-address ipport     預設值:0.0.0.0:10256

健康檢查伺服器的服務 IP 地址和埠,預設為 "0.0.0.0:10256"。如果透過 --config 指定了配置檔案,則會忽略此引數。

-h, --help

kube-proxy 的幫助資訊

--hostname-override string

如果非空,將用作 kube-proxy 執行的節點的名稱。如果未設定,則節點名稱假定與節點的 hostname 相同。

--init-only

如果為 true,則執行任何必須具有完全 root 許可權的初始化步驟,然後退出。完成此操作後,您可以再次執行 kube-proxy,只賦予 CAP_NET_ADMIN 能力。

--iptables-localhost-nodeports     預設值:true

如果為 false,kube-proxy 將停用允許透過 localhost 訪問 NodePort 服務的舊行為。(僅適用於 iptables 模式和 IPv4;在其他代理模式或 IPv6 下,localhost NodePorts 永遠不允許。)

--iptables-masquerade-bit int32     預設值:14

如果使用 iptables 或 ipvs 代理模式,則用於標記需要 SNAT 的資料包的 fwmark 空間位。必須在 [0, 31] 範圍內。

--iptables-min-sync-period duration     預設值:1s

iptables 規則重新同步的最小間隔時間(例如 '5s'、'1m'、'2h22m')。值為 0 意味著每次 Service 或 EndpointSlice 更改都會立即觸發 iptables 重新同步。

--iptables-sync-period duration     預設值:30s

一個間隔時間(例如 '5s'、'1m'、'2h22m'),表示各種重新同步和清理操作執行的頻率。必須大於 0。

--ipvs-exclude-cidrs strings

IPVS 代理在清理 IPVS 規則時應避免接觸的 CIDR 的逗號分隔列表。

--ipvs-min-sync-period duration     預設值:1s

IPVS 規則重新同步的最小間隔時間(例如 '5s'、'1m'、'2h22m')。值為 0 意味著每次 Service 或 EndpointSlice 更改都會立即觸發 IPVS 重新同步。

--ipvs-scheduler string

當代理模式為 ipvs 時的 IPVS 排程器型別

--ipvs-strict-arp

透過設定 arp_ignore 為 1 和 arp_announce 為 2 來啟用嚴格 ARP

--ipvs-sync-period duration     預設值:30s

一個間隔時間(例如 '5s'、'1m'、'2h22m'),表示各種重新同步和清理操作執行的頻率。必須大於 0。

--ipvs-tcp-timeout duration

空閒 IPVS TCP 連線的超時時間,0 表示保持不變。(例如 '5s'、'1m'、'2h22m')。

--ipvs-tcpfin-timeout duration

IPVS TCP 連線在收到 FIN 資料包後的超時時間,0 表示保持不變。(例如 '5s'、'1m'、'2h22m')。

--ipvs-udp-timeout duration

IPVS UDP 資料包的超時時間,0 表示保持不變。(例如 '5s'、'1m'、'2h22m')。

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

與 kubernetes apiserver 通訊時使用的突發流量

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

傳送到 apiserver 的請求內容型別。

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

與 kubernetes apiserver 通訊時使用的 QPS

--kubeconfig string

包含授權資訊的 kubeconfig 檔案的路徑(master 地址可以透過 master 標誌覆蓋)。

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

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

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

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

--log-text-split-stream

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

--log_backtrace_at <格式為 'file:N' 的字串>     預設值::0

當日志記錄到達 line file:N 時,發出堆疊跟蹤

--log_dir string

如果非空,則在此目錄中寫入日誌檔案(當 -logtostderr=true 時無效)

--log_file string

如果非空,則使用此日誌檔案(當 -logtostderr=true 時無效)

--log_file_max_size uint     預設值:1800

定義日誌檔案可以增長的最大尺寸(當 -logtostderr=true 時無效)。單位是兆位元組。如果值為 0,則最大檔案大小無限制。

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

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

--logtostderr     預設值:true

將日誌寫入標準錯誤而不是檔案

--masquerade-all

對透過 Service 叢集 IP 傳送的所有流量進行 SNAT。某些 CNI 外掛可能需要此設定。僅在 Linux 上支援。

--master string

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

--metrics-bind-address ipport     預設值:127.0.0.1:10249

指標伺服器的服務 IP 地址和埠,預設為 "127.0.0.1:10249"。(設定為 "0.0.0.0:10249" / "[::]:10249" 以繫結到所有介面。)設定為 "" 以停用。如果透過 --config 指定了配置檔案,則會忽略此引數。

--nodeport-addresses strings

包含有效節點 IP 的 CIDR 範圍列表,或者也可以是單個字串 'primary'。如果設定為 CIDR 列表,則僅接受來自指示範圍內的節點 IP 的 NodePort 服務連線。如果設定為 'primary',則 NodePort 服務僅接受來自節點物件指示的節點主 IP 的連線。如果未設定,則 NodePort 連線將接受所有本地 IP。如果透過 --config 指定了配置檔案,則會忽略此引數。

--one_output

如果為 true,則只將日誌寫入其原始嚴重級別(而不是也寫入每個較低的嚴重級別;當 -logtostderr=true 時無效)

--oom-score-adj int32     預設值:-999

kube-proxy 程序的 oom-score-adj 值。值必須在 [-1000, 1000] 範圍內。如果透過 --config 指定了配置檔案,則會忽略此引數。

--pod-bridge-interface string

一個橋接介面名稱。當 --detect-local-mode 設定為 BridgeInterface 時,kube-proxy 會將來自此橋接介面的流量視為本地流量。

--pod-interface-name-prefix string

一個介面名稱字首。當 --detect-local-mode 設定為 InterfaceNamePrefix 時,kube-proxy 會將源自任何名稱以該字首開頭的介面的流量視為本地流量。

--profiling

如果為 true,則透過 /debug/pprof handler 上的 Web 介面啟用效能分析。如果透過 --config 指定了配置檔案,則會忽略此引數。

--proxy-mode ProxyMode

要使用的代理模式:在 Linux 上可以是 'iptables'(預設)、'ipvs' 或 'nftables'。在 Windows 上唯一支援的值是 'kernelspace'。如果透過 --config 指定了配置檔案,則會忽略此引數。

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

要顯示隱藏指標的先前版本的版本號。只有之前的次要版本才有意義,其他值將不被允許。格式為 <major>.<minor>,例如:'1.16'。此格式的目的是確保您有機會注意到下一個版本是否隱藏了其他指標,而不是在它們在之後釋出的版本中被永久刪除時感到意外。如果透過 --config 指定了配置檔案,則會忽略此引數。

--skip_headers

如果為 true,則避免在日誌訊息中新增頭部字首

--skip_log_headers

如果為 true,則在開啟日誌檔案時避免新增頭部(當 -logtostderr=true 時無效)

--stderrthreshold int     預設值:2

當同時寫入檔案和標準錯誤時,此閾值及以上級別的日誌將寫入 stderr(當 -logtostderr=true 或 -alsologtostderr=true 時無效)

-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)