kube-proxy
简介
Kubernetes 网络代理在每个节点上运行。网络代理反映了每个节点上 Kubernetes API 中定义的服务,并且可以执行简单的 TCP、UDP 和 SCTP 流转发,或者在一组后端进行循环 TCP、UDP 和 SCTP 转发。当前可通过 Docker-links-compatible 环境变量找到服务集群 IP 和端口,这些环境变量指定了服务代理打开的端口。有一个可选的插件,可以为这些集群 IP 提供集群 DNS。用户必须使用 apiserver API 创建服务才能配置代理。
kube-proxy [flags]
选项
—azure-container-registry-config string | |
包含 Azure 容器仓库配置信息的文件的路径。 | |
—bind-address 0.0.0.0 默认值: 0.0.0.0 | |
代理服务器要使用的 IP 地址(对于所有 IPv4 接口设置为 0.0.0.0,对于所有 IPv6 接口设置为 ::) | |
—cleanup | |
如果为 true,清理 iptables 和 ipvs 规则并退出。 | |
—cleanup-ipvs 默认值: true | |
如果设置为 true 并指定了 —cleanup,则 kube-proxy 除了常规清理外,还将刷新 IPVS 规则。 | |
—cluster-cidr string | |
集群中 Pod 的 CIDR 范围。配置后,将从该范围之外发送到服务集群 IP 的流量被伪装,从 Pod 发送到外部 LoadBalancer IP 的流量将被重定向到相应的集群 IP。 | |
—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-max-per-core 多少,要分配的 conntrack 条目的最小数量(将 conntrack-max-per-core 设置为 0 即可保持原样的限制)。 | |
—conntrack-tcp-timeout-close-wait duration 默认值: 1h0m0s | |
处于 CLOSE_WAIT 状态的 TCP 连接的 NAT 超时 | |
—conntrack-tcp-timeout-established duration 默认值: 24h0m0s | |
已建立的 TCP 连接的空闲超时(0 保持原样) | |
—detect-local-mode LocalMode | |
用于检测本地流量的模式 | |
—feature-gates mapStringBool | |
一组键=值(key=value)对,描述了 alpha/experimental 的特征。可选项有: APIListChunking=true|false (BETA - 默认值=true) APIPriorityAndFairness=true|false (ALPHA - 默认值=false) APIResponseCompression=true|false (BETA - 默认值=true) AllAlpha=true|false (ALPHA - 默认值=false) AllBeta=true|false (BETA - 默认值=false) AllowInsecureBackendProxy=true|false (BETA - 默认值=true) AnyVolumeDataSource=true|false (ALPHA - 默认值=false) AppArmor=true|false (BETA - 默认值=true) BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值=false) BoundServiceAccountTokenVolume=true|false (ALPHA - 默认值=false) CPUManager=true|false (BETA - 默认值=true) CRIContainerLogRotation=true|false (BETA - 默认值=true) CSIInlineVolume=true|false (BETA - 默认值=true) CSIMigration=true|false (BETA - 默认值=true) CSIMigrationAWS=true|false (BETA - 默认值=false) CSIMigrationAWSComplete=true|false (ALPHA - 默认值=false) CSIMigrationAzureDisk=true|false (BETA - 默认值=false) CSIMigrationAzureDiskComplete=true|false (ALPHA - 默认值=false) CSIMigrationAzureFile=true|false (ALPHA - 默认值=false) CSIMigrationAzureFileComplete=true|false (ALPHA - 默认值=false) CSIMigrationGCE=true|false (BETA - 默认值=false) CSIMigrationGCEComplete=true|false (ALPHA - 默认值=false) CSIMigrationOpenStack=true|false (BETA - 默认值=false) CSIMigrationOpenStackComplete=true|false (ALPHA - 默认值=false) CSIMigrationvSphere=true|false (BETA - 默认值=false) CSIMigrationvSphereComplete=true|false (BETA - 默认值=false) CSIStorageCapacity=true|false (ALPHA - 默认值=false) CSIVolumeFSGroupPolicy=true|false (ALPHA - 默认值=false) ConfigurableFSGroupPolicy=true|false (ALPHA - 默认值=false) CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false) DefaultPodTopologySpread=true|false (ALPHA - 默认值=false) DevicePlugins=true|false (BETA - 默认值=true) DisableAcceleratorUsageMetrics=true|false (ALPHA - 默认值=false) DynamicKubeletConfig=true|false (BETA - 默认值=true) EndpointSlice=true|false (BETA - 默认值=true) EndpointSliceProxying=true|false (BETA - 默认值=true) EphemeralContainers=true|false (ALPHA - 默认值=false) ExpandCSIVolumes=true|false (BETA - 默认值=true) ExpandInUsePersistentVolumes=true|false (BETA - 默认值=true) ExpandPersistentVolumes=true|false (BETA - 默认值=true) ExperimentalHostUserNamespace默认值ing=true|false (BETA - 默认值=false) GenericEphemeralVolume=true|false (ALPHA - 默认值=false) HPAScaleToZero=true|false (ALPHA - 默认值=false) HugePageStorageMediumSize=true|false (BETA - 默认值=true) HyperVContainer=true|false (ALPHA - 默认值=false) IPv6DualStack=true|false (ALPHA - 默认值=false) ImmutableEphemeralVolumes=true|false (BETA - 默认值=true) KubeletPodResources=true|false (BETA - 默认值=true) LegacyNodeRoleBehavior=true|false (BETA - 默认值=true) LocalStorageCapacityIsolation=true|false (BETA - 默认值=true) LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false) NodeDisruptionExclusion=true|false (BETA - 默认值=true) NonPreemptingPriority=true|false (BETA - 默认值=true) PodDisruptionBudget=true|false (BETA - 默认值=true) PodOverhead=true|false (BETA - 默认值=true) ProcMountType=true|false (ALPHA - 默认值=false) QOSReserved=true|false (ALPHA - 默认值=false) RemainingItemCount=true|false (BETA - 默认值=true) RemoveSelfLink=true|false (ALPHA - 默认值=false) RotateKubeletServerCertificate=true|false (BETA - 默认值=true) RunAsGroup=true|false (BETA - 默认值=true) RuntimeClass=true|false (BETA - 默认值=true) SCTPSupport=true|false (BETA - 默认值=true) SelectorIndex=true|false (BETA - 默认值=true) ServerSideApply=true|false (BETA - 默认值=true) ServiceAccountIssuerDiscovery=true|false (ALPHA - 默认值=false) ServiceAppProtocol=true|false (BETA - 默认值=true) ServiceNodeExclusion=true|false (BETA - 默认值=true) ServiceTopology=true|false (ALPHA - 默认值=false) SetHostnameAsFQDN=true|false (ALPHA - 默认值=false) StartupProbe=true|false (BETA - 默认值=true) StorageVersionHash=true|false (BETA - 默认值=true) SupportNodePidsLimit=true|false (BETA - 默认值=true) SupportPodPidsLimit=true|false (BETA - 默认值=true) Sysctls=true|false (BETA - 默认值=true) TTLAfterFinished=true|false (ALPHA - 默认值=false) TokenRequest=true|false (BETA - 默认值=true) TokenRequestProjection=true|false (BETA - 默认值=true) TopologyManager=true|false (BETA - 默认值=true) ValidateProxyRedirects=true|false (BETA - 默认值=true) VolumeSnapshotDataSource=true|false (BETA - 默认值=true) WarningHeaders=true|false (BETA - 默认值=true) WinDSR=true|false (ALPHA - 默认值=false) WinOverlay=true|false (ALPHA - 默认值=false) WindowsEndpointSliceProxying=true|false (ALPHA - 默认值=false) | |
—healthz-bind-address 0.0.0.0 默认值: 0.0.0.0:10256 | |
服务健康检查的 IP 地址和端口(对于所有 IPv4 接口设置为 ‘0.0.0.0:10256’,对于所有 IPv6 接口设置为 ‘[::]:10256’) 设置为空则禁用。 | |
—healthz-bind-address 0.0.0.0 默认值: 0.0.0.0:10256 | |
服务健康检查的 IP 地址和端口(设置为 0.0.0.0 表示使用所有 IPv4 接口,设置为 :: 表示使用所有 IPv6 接口) | |
-h, —help | |
kube-proxy 操作的帮助命令 | |
—hostname-override string | |
如果非空,将使用此字符串作为标识而不是实际的主机名。 | |
—iptables-masquerade-bit int32 默认值: 14 | |
如果使用纯 iptables 代理,则 fwmark 空间的 bit 用于标记需要 SNAT 的数据包。必须在 [0,31] 范围内。 | |
—iptables-min-sync-period duration 默认值:1s | |
iptables 规则可以随着端点和服务的更改而刷新的最小间隔(例如 ‘5s’、’1m’、’2h22m’)。 | |
—iptables-sync-period duration 默认值: 30s | |
刷新 iptables 规则的最大间隔(例如 ‘5s’、’1m’、’2h22m’)。必须大于 0。 | |
—ipvs-exclude-cidrs stringSlice | |
逗号分隔的 CIDR 列表,ipvs 代理在清理 IPVS 规则时不应使用此列表。 | |
—ipvs-min-sync-period duration | |
ipvs 规则可以随着端点和服务的更改而刷新的最小间隔(例如 ‘5s’、’1m’、’2h22m’)。 | |
—ipvs-scheduler string | |
代理模式为 ipvs 时的 ipvs 调度器类型 | |
—ipvs-strict-arp | |
通过将 arp_ignore 设置为 1 并将 arp_announce 设置为 2 启用严格的 ARP | |
—ipvs-sync-period duration 默认值: 30s | |
刷新 ipvs 规则的最大间隔(例如 ‘5s’、’1m’、’2h22m’)。必须大于 0。 | |
—ipvs-tcp-timeout duration | |
空闲 IPVS TCP 连接的超时时间,0 保持连接(例如 ‘5s’、’1m’、’2h22m’)。 | |
—ipvs-tcpfin-timeout duration | |
收到 FIN 数据包后,IPVS TCP 连接的超时,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 float32 默认值: 5 | |
与 kubernetes apiserver 交互时使用的 QPS | |
—kubeconfig string | |
包含授权信息的 kubeconfig 文件的路径(master 位置由 master 标志设置)。 | |
—log-flush-frequency duration 默认值: 5s | |
两次日志刷新之间的最大秒数 | |
—masquerade-all | |
如果使用纯 iptables 代理,则对通过服务集群 IP 发送的所有流量进行 SNAT(通常不需要) | |
—master string | |
Kubernetes API 服务器的地址(覆盖 kubeconfig 中的任何值) | |
—metrics-bind-address ipport 0.0.0.0 默认值: 127.0.0.1:10249 | |
metrics 服务器要使用的 IP 地址和端口 (设置为 ‘0.0.0.0:10249’ 则使用 IPv4 接口,设置为 ‘[::]:10249’ 则使用所有 IPv6 接口) 设置为空则禁用。 | |
—metrics-port int32 默认值: 10249 | |
绑定 metrics 服务器的端口。使用 0 表示禁用。 | |
—nodeport-addresses stringSlice | |
一个字符串值,指定用于 NodePorts 的地址。值可以是有效的 IP 块(例如 1.2.3.0/24, 1.2.3.4/32)。默认的空字符串切片([])表示使用所有本地地址。 | |
—oom-score-adj int32 默认值: -999 | |
kube-proxy 进程中的 oom-score-adj 值必须在 [-1000,1000] 范围内 | |
—profiling | |
如果为 true,则通过 Web 接口 /debug/pprof 启用性能分析。 | |
—proxy-mode ProxyMode | |
使用哪种代理模式:’userspace’(较旧)或 ‘iptables’(较快)或 ‘ipvs’(实验)。如果为空,使用最佳可用代理(当前为 iptables)。如果选择了 iptables 代理,无论如何,但系统的内核或 iptables 版本较低,这总是会回退到用户空间代理。 | |
—proxy-port-range port-range | |
可以使用代理服务流量的主机端口(包括 beginPort-endPort、single port、beginPort+offset)的范围。如果(未指定,0 或 0-0)则随机选择端口。 | |
—show-hidden-metrics-for-version string | |
你要显示隐藏指标的先前版本。 仅先前的次要版本有意义,不允许其他值。 格式为 <major>.<minor> ,例如:’1.16’。 这种格式的目的是确保你有机会注意到下一个发行版是否隐藏了其他指标, 而不是在之后将其永久删除时感到惊讶。 | |
—udp-timeout duration 默认值: 250ms | |
空闲 UDP 连接将保持打开的时长(例如 ‘250ms’,’2s’)。必须大于 0。仅适用于 proxy-mode=userspace | |
—version version[=true] | |
打印版本信息并退出 | |
—write-config-to string | |
如果设置,将配置值写入此文件并退出。 |
当前内容版权归 kubernetes 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 kubernetes .