kube-proxy 配置 (v1alpha1)

资源类型

FormatOptions

出现于

FormatOptions 包含不同日志格式的选项。

字段描述
text [必需]
TextOptions

[Alpha] Text 包含日志格式“text”的选项。仅在启用了 LoggingAlphaOptions 特性门控时可用。

json [必需]
JSONOptions

[Alpha] JSON 包含日志格式“json”的选项。仅在启用了 LoggingAlphaOptions 特性门控时可用。

JSONOptions

出现于

JSONOptions 包含日志格式“json”的选项。

字段描述
OutputRoutingOptions [必需]
OutputRoutingOptions
(OutputRoutingOptions 的成员嵌入在此类型中。) 未提供说明。

LogFormatFactory

LogFormatFactory 提供对某种附加的、非默认日志格式的支持。

LoggingConfiguration

出现于

LoggingConfiguration 包含日志选项。

字段描述
format [必需]
字符串

Format 标志指定日志消息的结构。format 的默认值为 text

flushFrequency [必需]
TimeOrMetaDuration

两次日志刷新之间的最大时间间隔。如果是字符串,则解析为持续时间(例如,“1s”)。如果是整数,则为纳秒的最大值(例如,1s = 1000000000)。如果所选的日志后端在写入日志消息时不使用缓冲,则此项将被忽略。

verbosity [必需]
VerbosityLevel

Verbosity 是确定记录哪些日志消息的阈值。默认值为 0,仅记录最重要的消息。较高的值会启用附加消息。错误消息总是会被记录。

vmodule [必需]
VModuleConfiguration

VModule 重写单个文件的详细程度阈值。仅支持“text”日志格式。

options [必需]
FormatOptions

[Alpha] Options 保存特定于不同日志格式的附加参数。只有所选格式的选项会被使用,但所有选项都会经过验证。仅在启用了 LoggingAlphaOptions 特性门控时可用。

LoggingOptions

LoggingOptions 可与 ValidateAndApplyWithOptions 一起使用,以覆盖某些全局默认值。

字段描述
ErrorStream [必需]
io.Writer

ErrorStream 可用于覆盖 os.Stderr 默认值。

InfoStream [必需]
io.Writer

InfoStream 可用于覆盖 os.Stdout 默认值。

OutputRoutingOptions

出现于

OutputRoutingOptions 包含“text”和“json”格式都支持的选项。

字段描述
splitStream [必需]
bool

[Alpha] SplitStream 将错误消息重定向到 stderr,而将信息消息发送到 stdout(带缓冲)。默认设置是将两者都写入 stdout(不带缓冲)。仅在启用了 LoggingAlphaOptions 特性门控时可用。

infoBufferSize [必需]
k8s.io/apimachinery/pkg/api/resource.QuantityValue

[Alpha] InfoBufferSize 设置使用分割流时信息流的大小。默认值为 0,即禁用缓冲。仅在启用了 LoggingAlphaOptions 特性门控时可用。

TextOptions

出现于

TextOptions 包含日志格式“text”的选项。

字段描述
OutputRoutingOptions [必需]
OutputRoutingOptions
(OutputRoutingOptions 的成员嵌入在此类型中。) 未提供说明。

TimeOrMetaDuration

出现于

TimeOrMetaDuration 仅用于 flushFrequency 字段的向后兼容性,新字段应使用 metav1.Duration。

字段描述
Duration [必需]
meta/v1.Duration

Duration 保存持续时间

- [必需]
bool

SerializeAsString 控制值是序列化为字符串还是整数

VModuleConfiguration

([]k8s.io/component-base/logs/api/v1.VModuleItem 的别名)

出现于

VModuleConfiguration 是单个文件名或模式以及相应的详细程度阈值的集合。

VerbosityLevel

(uint32 的别名)

出现于

VerbosityLevel 表示 klog 或 logr 的详细程度阈值。

ClientConnectionConfiguration

出现于

ClientConnectionConfiguration 包含构建客户端的详细信息。

字段描述
kubeconfig [必需]
字符串

kubeconfig 是 KubeConfig 文件的路径。

acceptContentTypes [必需]
字符串

acceptContentTypes 定义了客户端在连接到服务器时发送的 Accept 标头,覆盖默认值 'application/json'。此字段将控制特定客户端使用的所有连接到服务器的连接。

contentType [必需]
字符串

contentType 是从该客户端发送数据到服务器时使用的内容类型。

qps [必需]
float32

qps 控制此连接允许的每秒查询数。

burst [必需]
int32

burst 允许在客户端超过其速率时积累额外的查询。

DebuggingConfiguration

出现于

DebuggingConfiguration 包含与调试相关功能相关的配置。

字段描述
enableProfiling [必需]
bool

enableProfiling 启用通过 Web 界面 host:port/debug/pprof/ 进行的分析。

enableContentionProfiling [必需]
bool

enableContentionProfiling 启用阻塞分析,如果 enableProfiling 为 true。

LeaderElectionConfiguration

出现于

LeaderElectionConfiguration 定义了可以启用领导者选举的组件的领导者选举客户端的配置。

字段描述
leaderElect [必需]
bool

leaderElect 启用领导者选举客户端在执行主循环之前获得领导权。在运行具有高可用性的复制组件时启用此选项。

leaseDuration [必需]
meta/v1.Duration

leaseDuration 是非领导者候选人在观察到领导权续期后,等待尝试获取已领导但未续期的领导者槽位的时间。这实际上是领导者在被另一位候选者取代之前可以停止的最大持续时间。这仅在启用了领导者选举时适用。

renewDeadline [必需]
meta/v1.Duration

renewDeadline 是活动领导者在停止领导之前尝试续订领导者插槽的间隔。必须小于或等于租期。仅当启用领导者选举时才适用。

retryPeriod [必需]
meta/v1.Duration

retryPeriod 是客户端在尝试获取和续订领导权之间应等待的持续时间。仅当启用领导者选举时才适用。

resourceLock [必需]
字符串

resourceLock 指示在领导者选举周期期间将用于锁定的资源对象类型。

resourceName [必需]
字符串

resourceName 指示在领导者选举周期期间将用于锁定的资源对象名称。

resourceNamespace [必需]
字符串

resourceName 指示在领导者选举周期期间将用于锁定的资源对象的命名空间。

KubeProxyConfiguration

KubeProxyConfiguration 包含配置 Kubernetes 代理服务器所需的一切。

字段描述
apiVersion
字符串
kubeproxy.config.k8s.io/v1alpha1
kind
字符串
KubeProxyConfiguration
featureGates [必需]
map[string]bool

featureGates 是特性名称到布尔值的映射,用于启用或禁用 Alpha/实验性特性。

clientConnection [必需]
ClientConnectionConfiguration

clientConnection 指定代理服务器在与 apiserver 通信时使用的 kubeconfig 文件和客户端连接设置。

logging [必需]
LoggingConfiguration

logging 指定日志记录选项。有关更多信息,请参阅 日志选项

hostnameOverride [必需]
字符串

如果 hostnameOverride 非空,它将用作 kube-proxy 运行所在节点的名称。如果未设置,则假定节点名称与节点的主机名相同。

bindAddress [必需]
字符串

bindAddress 可用于覆盖 kube-proxy 对其节点主 IP 的认识。请注意,此名称是一个历史产物,kube-proxy 实际上并未将任何套接字绑定到此 IP。

healthzBindAddress [必需]
字符串

healthzBindAddress 是健康检查服务器要服务的 IP 地址和端口,默认为 "0.0.0.0:10256"(如果 bindAddress 未设置或为 IPv4)或 "[::]:10256"(如果 bindAddress 为 IPv6)。

metricsBindAddress [必需]
字符串

metricsBindAddress 是指标服务器要服务的 IP 地址和端口,默认为 "127.0.0.1:10249"(如果 bindAddress 未设置或为 IPv4)或 "[::1]:10249"(如果 bindAddress 为 IPv6)。(设置为 "0.0.0.0:10249" / "[::]:10249" 以绑定所有接口。)

bindAddressHardFail [必需]
bool

如果 bindAddressHardFail 为 true,则告诉 kube-proxy 将绑定端口失败视为致命错误并退出。

enableProfiling [必需]
bool

enableProfiling 通过 /debug/pprof 处理程序启用 Web 界面分析。分析处理程序将由指标服务器处理。

showHiddenMetricsForVersion [必需]
字符串

showHiddenMetricsForVersion 是您想要显示隐藏指标的版本。

mode [必需]
ProxyMode

mode 指定要使用的代理模式。

iptables [必需]
KubeProxyIPTablesConfiguration

iptables 包含与 iptables 相关的配置选项。

ipvs [必需]
KubeProxyIPVSConfiguration

ipvs 包含与 ipvs 相关的配置选项。

nftables [必需]
KubeProxyNFTablesConfiguration

nftables 包含与 nftables 相关的配置选项。

winkernel [必需]
KubeProxyWinkernelConfiguration

winkernel 包含与 winkernel 相关的配置选项。

detectLocalMode [必需]
LocalMode

detectLocalMode 确定用于检测本地流量的模式,默认为 ClusterCIDR。

detectLocal [必需]
DetectLocalConfiguration

detectLocal 包含与 DetectLocalMode 相关的可选配置设置。

clusterCIDR [必需]
字符串

clusterCIDR 是集群中 Pod 的 CIDR 范围。(对于双栈集群,这可以是逗号分隔的 CIDR 范围对。)当 DetectLocalMode 设置为 ClusterCIDR 时,如果源 IP 在此范围内,kube-proxy 将认为流量是本地的。(否则它不会被使用。)

nodePortAddresses [必需]
[]string

nodePortAddresses 是包含有效节点 IP 的 CIDR 范围列表,或者为单个字符串 'primary'。如果设置为 CIDR 列表,则对 NodePort 服务的连接将仅在指定范围之一的节点 IP 上被接受。如果设置为 'primary',NodePort 服务将仅根据 Node 对象在节点的主要 IPv4 和/或 IPv6 地址上被接受。如果未设置,NodePort 连接将在所有本地 IP 上被接受。

oomScoreAdj [必需]
int32

oomScoreAdj 是 kube-proxy 进程的 oom-score-adj 值。值必须在 [-1000, 1000] 范围内。

conntrack [必需]
KubeProxyConntrackConfiguration

conntrack 包含与 conntrack 相关的配置选项。

configSyncPeriod [必需]
meta/v1.Duration

configSyncPeriod 是从 apiserver 刷新配置的频率。必须大于 0。

portRange [必需]
字符串

portRange 之前用于配置用户空间代理,但现在已弃用。

windowsRunAsService [必需]
bool

如果 windowsRunAsService 为 true,则启用 Windows 服务控制管理器 API 集成。

DetectLocalConfiguration

出现于

DetectLocalConfiguration 包含与 DetectLocalMode 选项相关的可选设置。

字段描述
bridgeInterface [必需]
字符串

bridgeInterface 是网桥接口名称。当 DetectLocalMode 设置为 LocalModeBridgeInterface 时,如果流量源自此网桥,kube-proxy 将认为流量是本地的。

interfaceNamePrefix [必需]
字符串

interfaceNamePrefix 是接口名称前缀。当 DetectLocalMode 设置为 LocalModeInterfaceNamePrefix 时,如果流量源自名称以此前缀开头的任何接口,kube-proxy 将认为流量是本地的。

KubeProxyConntrackConfiguration

出现于

KubeProxyConntrackConfiguration 包含 Kubernetes 代理服务器的 conntrack 设置。

字段描述
maxPerCore [必需]
int32

maxPerCore 是每个 CPU 核心跟踪的 NAT 连接最大数量(0 表示保持限制不变并忽略 min)。

min [必需]
int32

min 是要分配的连接跟踪记录的最小值,与 maxPerCore 无关(设置 maxPerCore=0 以保持限制不变)。

tcpEstablishedTimeout [必需]
meta/v1.Duration

tcpEstablishedTimeout 是空闲 TCP 连接保持打开的时间(例如 '2s')。必须大于 0 才能设置。

tcpCloseWaitTimeout [必需]
meta/v1.Duration

tcpCloseWaitTimeout 是 CLOSE_WAIT 状态下的空闲 conntrack 条目在 conntrack 表中保留的时间(例如 '60s')。必须大于 0 才能设置。

tcpBeLiberal [必需]
bool

如果 tcpBeLiberal 为 true,kube-proxy 将配置 conntrack 为 TCP 连接以宽松模式运行,且带有窗口外序列号的数据包将不会被标记为 INVALID。

udpTimeout [必需]
meta/v1.Duration

udpTimeout 是 UNREPLIED 状态下的空闲 UDP conntrack 条目在 conntrack 表中保留的时间(例如 '30s')。必须大于 0 才能设置。

udpStreamTimeout [必需]
meta/v1.Duration

udpStreamTimeout 是 ASSURED 状态下的空闲 UDP conntrack 条目在 conntrack 表中保留的时间(例如 '300s')。必须大于 0 才能设置。

KubeProxyIPTablesConfiguration

出现于

KubeProxyIPTablesConfiguration 包含 Kubernetes 代理服务器的 iptables 相关配置详情。

字段描述
masqueradeBit [必需]
int32

如果使用 iptables 或 ipvs 代理模式,masqueradeBit 是用于 SNAT 的 iptables fwmark 空间位。值必须在 [0, 31] 范围内。

masqueradeAll [必需]
bool

当使用 iptables 或 ipvs 代理模式时,masqueradeAll 告诉 kube-proxy 对发送到 Service 集群 IP 的所有流量进行 SNAT。某些 CNI 插件可能需要此操作。

localhostNodePorts [必需]
bool

如果 localhostNodePorts 为 false,则告诉 kube-proxy 禁用允许通过 localhost 访问 NodePort 服务的遗留行为。(仅适用于 iptables 模式和 IPv4;在其他代理模式或 IPv6 中从不允许 localhost NodePort。)

syncPeriod [必需]
meta/v1.Duration

syncPeriod 是一个间隔(例如 '5s', '1m', '2h22m'),表示执行各种重新同步和清理操作的频率。必须大于 0。

minSyncPeriod [必需]
meta/v1.Duration

minSyncPeriod 是 iptables 规则重新同步之间的最小周期(例如 '5s', '1m', '2h22m')。值为 0 表示每个 Service 或 EndpointSlice 更改都将导致立即进行 iptables 重新同步。

KubeProxyIPVSConfiguration

出现于

KubeProxyIPVSConfiguration 包含 Kubernetes 代理服务器的 ipvs 相关配置详情。

字段描述
syncPeriod [必需]
meta/v1.Duration

syncPeriod 是一个间隔(例如 '5s', '1m', '2h22m'),表示执行各种重新同步和清理操作的频率。必须大于 0。

minSyncPeriod [必需]
meta/v1.Duration

minSyncPeriod 是 IPVS 规则重新同步之间的最小周期(例如 '5s', '1m', '2h22m')。值为 0 表示每个 Service 或 EndpointSlice 更改都将导致立即进行 IPVS 重新同步。

scheduler [必需]
字符串

scheduler 是要使用的 IPVS 调度程序。

excludeCIDRs [必需]
[]string

excludeCIDRs 是在清理 ipvs 服务时 ipvs 代理不应触及的 CIDR 列表。

strictARP [必需]
bool

strictARP 配置 arp_ignore 和 arp_announce 以避免回答来自 kube-ipvs0 接口的 ARP 查询。

tcpTimeout [必需]
meta/v1.Duration

tcpTimeout 是用于空闲 IPVS TCP 会话的超时值。默认值为 0,即保留系统上的当前超时值。

tcpFinTimeout [必需]
meta/v1.Duration

tcpFinTimeout 是在接收到 FIN 后用于 IPVS TCP 会话的超时值。默认值为 0,即保留系统上的当前超时值。

udpTimeout [必需]
meta/v1.Duration

udpTimeout 是用于 IPVS UDP 数据包的超时值。默认值为 0,即保留系统上的当前超时值。

KubeProxyNFTablesConfiguration

出现于

KubeProxyNFTablesConfiguration 包含 Kubernetes 代理服务器的 nftables 相关配置详情。

字段描述
masqueradeBit [必需]
int32

masqueradeBit 是如果使用 nftables 代理模式,用于 SNAT 的 iptables fwmark 空间位。值必须在 [0, 31] 范围内。

masqueradeAll [必需]
bool

masqueradeAll 告诉 kube-proxy 在使用 nftables 模式时,对发送到 Service 集群 IP 的所有流量进行 SNAT。某些 CNI 插件可能需要此操作。

syncPeriod [必需]
meta/v1.Duration

syncPeriod 是一个间隔(例如 '5s', '1m', '2h22m'),表示执行各种重新同步和清理操作的频率。必须大于 0。

minSyncPeriod [必需]
meta/v1.Duration

minSyncPeriod 是 iptables 规则重新同步之间的最小周期(例如 '5s', '1m', '2h22m')。值为 0 表示每个 Service 或 EndpointSlice 更改都将导致立即进行 iptables 重新同步。

KubeProxyWinkernelConfiguration

出现于

KubeProxyWinkernelConfiguration 包含 Kubernetes 代理服务器的 Windows/HNS 设置。

字段描述
networkName [必需]
字符串

networkName 是 kube-proxy 将用于创建端点和策略的网络名称。

sourceVip [必需]
字符串

sourceVip 是负载均衡时用于 NAT 的源 VIP 端点的 IP 地址。

enableDSR [必需]
bool

enableDSR 告诉 kube-proxy 是否应使用 DSR 创建 HNS 策略。

rootHnsEndpointName [必需]
字符串

rootHnsEndpointName 是连接到根网络命名空间 l2bridge 的 hnsendpoint 的名称。

forwardHealthCheckVip [必需]
bool

forwardHealthCheckVip 在 Windows 上转发健康检查端口的服务 VIP。

LocalMode

(string 的别名)

出现于

LocalMode 表示从节点检测本地流量的模式。

ProxyMode

(string 的别名)

出现于

ProxyMode 表示 Kubernetes 代理服务器使用的模式。

Linux 平台上提供了三种代理模式:iptablesipvsnftables。Windows 平台上提供了一种代理模式:kernelspace

如果未指定代理模式,将使用默认代理模式(目前在 Linux 上为 iptables,在 Windows 上为 kernelspace)。如果无法使用所选的代理模式(由于缺乏内核支持、缺少用户空间组件等),则 kube-proxy 将报错退出。


最后修改时间为 2025 年 4 月 24 日上午 8:56 PST:更新 v1.33 的配置 API (2bdd42a2f3)

本页面是自动生成的。

如果您打算报告此页面的问题,请在您的问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。