kube-proxy
简介
Kubernetes 网络代理在每个节点上运行。网络代理反映了每个节点上 Kubernetes API 中定义的服务,并且可以执行简单的 TCP、UDP 和 SCTP 流转发,或者在一组后端进行 循环 TCP、UDP 和 SCTP 转发。 当前可通过 Docker-links-compatible 环境变量找到服务集群 IP 和端口, 这些环境变量指定了服务代理打开的端口。 有一个可选的插件,可以为这些集群 IP 提供集群 DNS。 用户必须使用 apiserver API 创建服务才能配置代理。
kube-proxy [flags]
选项
--add-dir-header | |
若此标志为 true,则将文件目录添加到日志消息的头部。 |
|
--alsologtostderr | |
将日志输出到文件时也输出到标准错误输出(stderr)。 |
|
--azure-container-registry-config string | |
包含 Azure 容器仓库配置信息的文件的路径。 |
|
--bind-address 0.0.0.0 默认值:0.0.0.0 | |
代理服务器要使用的 IP 地址(设置为 '0.0.0.0' 表示要使用所有 IPv4 接口; 设置为 '::' 表示使用所有 IPv6 接口)。 |
|
--bind-address-hard-fail | |
若此标志为 true,kube-proxy 会将无法绑定端口的失败操作视为致命错误并退出。 |
|
--boot-id-file string 默认值:"/proc/sys/kernel/random/boot_id" | |
用来检查 Boot-ID 的文件名,用逗号隔开。 第一个存在的文件会被使用。 |
|
--cleanup | |
如果为 true,清理 iptables 和 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-tcp-timeout-close-wait duration 默认值:1h0m0s | |
处于 |
|
--conntrack-tcp-timeout-established duration 默认值:24h0m0s | |
已建立的 TCP 连接的空闲超时(0 保持当前设置)。 |
|
--detect-local-mode LocalMode | |
用于检测本地流量的模式。 |
|
--feature-gates <逗号分隔的 'key=True|False' 对’> | |
一组键=值(key=value)对,描述了 alpha/experimental 的特征。可选项有:
APIListChunking=true|false (BETA - 默认值=true) |
|
--healthz-bind-address 0.0.0.0 默认值:0.0.0.0:10256 |
|
服务健康状态检查的 IP 地址和端口(设置为 '0.0.0.0:10256' 表示使用所有 IPv4 接口,设置为 '[::]:10256' 表示使用所有 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 strings | |
逗号分隔的 CIDR 列表,ipvs 代理在清理 IPVS 规则时不会此列表中的地址范围。 |
|
--ipvs-min-sync-period duration | |
ipvs 规则可以随着端点和服务的更改而刷新的最小间隔(例如 '5s'、'1m'、'2h22m')。 |
|
--ipvs-scheduler string | |
代理模式为 ipvs 时所选的 ipvs 调度器类型。 |
|
--ipvs-strict-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 标志设置)。 |
|
--log-backtrace-at <形式为 'file:N' 的字符串> Default: :0 | |
当日志逻辑执行到文件 file 的第 N 行时,输出调用堆栈跟踪。 |
|
--log-dir string | |
若此标志费控,则将日志文件写入到此标志所给的目录下。 |
|
--log-file string | |
若此标志非空,则该字符串作为日志文件名。 |
|
--log-file-max-size uint 默认值:1800 | |
定义日志文件可增长到的最大尺寸。单位是兆字节(MB)。 如果此值为 0,则最大文件大小无限制。 |
|
--log-flush-frequency duration 默认值:5s | |
两次日志刷新之间的最大秒数。 | |
--machine-id-file string 默认值:"/etc/machine-id,/var/lib/dbus/machine-id" | |
用来检查 Machine-ID 的文件列表,用逗号分隔。 使用找到的第一个文件。 |
|
--masquerade-all | |
如果使用纯 iptables 代理,则对通过服务集群 IP 发送的所有流量 进行 SNAT(通常不需要)。 |
|
--master string | |
Kubernetes API 服务器的地址(覆盖 kubeconfig 中的相关值)。 |
|
--metrics-bind-address ipport 默认值:127.0.0.1:10249 |
|
metrics 服务器要使用的 IP 地址和端口 (设置为 '0.0.0.0:10249' 则使用所有 IPv4 接口,设置为 '[::]:10249' 则使用所有 IPv6 接口) 设置为空则禁用。 |
|
--nodeport-addresses strings | |
一个字符串值,指定用于 NodePort 服务的地址。 值可以是有效的 IP 块(例如 1.2.3.0/24, 1.2.3.4/32)。 默认的空字符串切片([])表示使用所有本地地址。 |
|
--one-output | |
若此标志为 true,则仅将日志写入到其原本的严重性级别之下 (而不是将其写入到所有更低严重性级别中)。 |
|
--oom-score-adj int32 默认值:-999 | |
kube-proxy 进程中的 oom-score-adj 值,必须在 [-1000,1000] 范围内。 |
|
--profiling | |
如果为 true,则通过 Web 接口 |
|
--proxy-mode string | |
使用哪种代理模式:'userspace'(较旧)或 'iptables'(较快)或 'ipvs'。 如果为空,使用最佳可用代理(当前为 iptables)。 如果选择了 iptables 代理(无论是否为显式设置),但系统的内核或 iptables 版本较低,总是会回退到 userspace 代理。 |
|
--proxy-port-range port-range | |
可以用来代理服务流量的主机端口范围(包括'起始端口-结束端口'、 '单个端口'、'起始端口+偏移'几种形式)。 如果未指定或者设置为 0(或 0-0),则随机选择端口。 |
|
--show-hidden-metrics-for-version string | |
要显示隐藏指标的先前版本。 仅先前的次要版本有意义,不允许其他值。 格式为 <major>.<minor> ,例如:'1.16'。 这种格式的目的是确保你有机会注意到下一个发行版是否隐藏了其他指标, 而不是在之后将其永久删除时感到惊讶。 |
|
--skip-headers | |
若此标志为 true,则避免在日志消息中包含头部前缀。 |
|
--skip-log-headers | |
如果此标志为 true,则避免在打开日志文件时使用头部。 |
|
--stderrthreshold int 默认值:2 | |
如果日志消息处于或者高于此阈值所设置的级别,则将其输出到标准错误输出(stderr)。 |
|
--udp-timeout duration 默认值:250ms | |
空闲 UDP 连接将保持打开的时长(例如 '250ms','2s')。必须大于 0。 仅适用于 proxy-mode=userspace。 |
|
-v, --v int | |
用来设置日志详细程度的数值。 |
|
--version version[=true] | |
打印版本信息并退出。 |
|
--vmodule <逗号分隔的 'pattern=N' 设置’> | |
用逗号分隔的列表,其中每一项为 'pattern=N' 格式。 用来支持基于文件过滤的日志机制。 |
|
--write-config-to string | |
如果设置,将默认配置信息写入此文件并退出。 |