kube-proxy 配置 (v1alpha1)
资源类型
FormatOptions
出现在
FormatOptions 包含不同日志格式的选项。
| 字段 | 描述 |
|---|---|
text [Required]TextOptions | [Alpha] Text 包含 "text" 日志格式的选项。仅当启用了 LoggingAlphaOptions 特性门控时可用。 |
json [Required]JSONOptions | [Alpha] JSON 包含 "json" 日志格式的选项。仅当启用了 LoggingAlphaOptions 特性门控时可用。 |
JSONOptions
出现在
JSONOptions 包含 "json" 日志格式的选项。
| 字段 | 描述 |
|---|---|
OutputRoutingOptions [Required]OutputRoutingOptions | (OutputRoutingOptions 的成员被嵌入到此类型中。) 未提供描述。 |
LogFormatFactory
LogFormatFactory 支持某些额外的、非默认的日志格式。
LoggingConfiguration
出现在
LoggingConfiguration 包含日志选项。
| 字段 | 描述 |
|---|---|
format [Required]string | Format Flag 指定日志消息的结构。format 的默认值为 |
flushFrequency [Required]TimeOrMetaDuration | 日志刷新之间的最大时间。如果为字符串,则解析为持续时间(例如 "1s")。如果为整数,则为纳秒的最大数量(例如 1s = 1000000000)。如果所选日志后端在没有缓冲的情况下写入日志消息,则忽略此设置。 |
verbosity [Required]VerbosityLevel | Verbosity 是决定哪些日志消息被记录的阈值。默认为零,仅记录最重要的消息。更高的值会启用额外的消息。错误消息始终会被记录。 |
vmodule [Required]VModuleConfiguration | VModule 会覆盖单个文件的详细程度阈值。仅支持 "text" 日志格式。 |
options [Required]FormatOptions | [Alpha] Options 包含特定于不同日志格式的附加参数。只有选定格式的选项才会被使用,但所有选项都会被验证。仅当启用了 LoggingAlphaOptions 特性门控时可用。 |
LoggingOptions
LoggingOptions 可以与 ValidateAndApplyWithOptions 一起使用来覆盖某些全局默认值。
| 字段 | 描述 |
|---|---|
ErrorStream [Required]io.Writer | ErrorStream 可用于覆盖 os.Stderr 的默认值。 |
InfoStream [Required]io.Writer | InfoStream 可用于覆盖 os.Stdout 的默认值。 |
OutputRoutingOptions
出现在
OutputRoutingOptions 包含 "text" 和 "json" 都支持的选项。
| 字段 | 描述 |
|---|---|
splitStream [Required]bool | [Alpha] SplitStream 将错误消息重定向到 stderr,而信息消息则定向到 stdout,并进行缓冲。默认是将两者都写入 stdout,不进行缓冲。仅当启用了 LoggingAlphaOptions 特性门控时可用。 |
infoBufferSize [Required]k8s.io/apimachinery/pkg/api/resource.QuantityValue | [Alpha] InfoBufferSize 在使用 split streams 时设置 info stream 的大小。默认值为零,表示禁用缓冲。仅当启用了 LoggingAlphaOptions 特性门控时可用。 |
TextOptions
出现在
TextOptions 包含 "text" 日志格式的选项。
| 字段 | 描述 |
|---|---|
OutputRoutingOptions [Required]OutputRoutingOptions | (OutputRoutingOptions 的成员被嵌入到此类型中。) 未提供描述。 |
TimeOrMetaDuration
出现在
TimeOrMetaDuration 仅为 flushFrequency 字段的向后兼容性而存在,新字段应使用 metav1.Duration。
| 字段 | 描述 |
|---|---|
Duration [Required]meta/v1.Duration | Duration 包含持续时间 |
- [必填]bool | SerializeAsString 控制值是序列化为字符串还是整数 |
VModuleConfiguration
([]k8s.io/component-base/logs/api/v1.VModuleItem 的别名)
出现在
VModuleConfiguration 是单个文件名或模式以及相应的详细程度阈值的集合。
VerbosityLevel
(uint32 的别名)
出现在
VerbosityLevel 表示 klog 或 logr 的详细程度阈值。
ClientConnectionConfiguration
出现在
ClientConnectionConfiguration 包含构造客户端的详细信息。
| 字段 | 描述 |
|---|---|
kubeconfig [Required]string | kubeconfig 是 KubeConfig 文件的路径。 |
acceptContentTypes [Required]string | acceptContentTypes 定义客户端连接到服务器时发送的 Accept 头,覆盖默认值 'application/json'。此字段将控制与特定客户端使用的服务器的所有连接。 |
contentType [Required]string | contentType 是此客户端向服务器发送数据时使用的内容类型。 |
qps [Required]float32 | qps 控制此连接允许的每秒查询数。 |
burst [Required]int32 | burst 允许在客户端超过其速率时累积额外的查询。 |
DebuggingConfiguration
出现在
DebuggingConfiguration 包含与调试相关功能的配置。
| 字段 | 描述 |
|---|---|
enableProfiling [Required]bool | enableProfiling 通过 Web 界面 host:port/debug/pprof/ 启用性能分析。 |
enableContentionProfiling [Required]bool | enableContentionProfiling 启用阻塞分析,前提是 enableProfiling 为 true。 |
LeaderElectionConfiguration
出现在
LeaderElectionConfiguration 定义了可以启用领导者选举的组件的领导者选举客户端的配置。
| 字段 | 描述 |
|---|---|
leaderElect [Required]bool | leaderElect 在执行主循环之前启用领导者选举客户端来获得领导权。当运行复制的组件以实现高可用性时,启用此选项。 |
leaseDuration [Required]meta/v1.Duration | leaseDuration 是非领导者候选者在观察到领导者续约后等待多长时间,然后才尝试获取一个已领导但未续约的领导者槽。这实际上是领导者停止前被另一个候选者替换的最长时间。仅当启用了领导者选举时才适用。 |
renewDeadline [Required]meta/v1.Duration | renewDeadline 是在当前领导者停止领导之前,尝试续约领导者槽的间隔。此时间必须小于或等于 leaseDuration。仅当启用了领导者选举时才适用。 |
retryPeriod [Required]meta/v1.Duration | retryPeriod 是客户端在尝试获取和续约领导权之间应该等待的时间。仅当启用了领导者选举时才适用。 |
resourceLock [Required]string | resourceLock 指示在领导者选举周期中将用于锁定的资源对象类型。 |
resourceName [Required]string | resourceName 指示在领导者选举周期中将用于锁定的资源对象的名称。 |
resourceNamespace [Required]string | resourceName 指示在领导者选举周期中将用于锁定的资源对象的命名空间。 |
KubeProxyConfiguration
KubeProxyConfiguration 包含配置 Kubernetes 代理服务器所需的所有内容。
| 字段 | 描述 |
|---|---|
apiVersionstring | kubeproxy.config.k8s.io/v1alpha1 |
kindstring | KubeProxyConfiguration |
featureGates [Required]map[string]bool | featureGates 是一个功能名称到布尔值的映射,用于启用或禁用 alpha/实验性功能。 |
clientConnection [Required]ClientConnectionConfiguration | clientConnection 指定代理服务器用于与 apiserver 通信的 kubeconfig 文件和客户端连接设置。 |
logging [Required]LoggingConfiguration | logging 指定日志选项。有关更多信息,请参阅 Logs Options。 |
hostnameOverride [Required]string | hostnameOverride(如果非空)将用作 kube-proxy 运行所在节点的名称。如果未设置,则假定节点名称与节点的 hostname 相同。 |
bindAddress [Required]string | bindAddress 可用于覆盖 kube-proxy 对其节点主 IP 的认知。请注意,该名称是历史遗留产物,kube-proxy 实际上并未将任何套接字绑定到此 IP。 |
healthzBindAddress [Required]string | healthzBindAddress 是健康检查服务器使用的 IP 地址和端口,默认为 "0.0.0.0:10256"(如果 bindAddress 未设置或为 IPv4),或 "[::]:10256"(如果 bindAddress 为 IPv6)。 |
metricsBindAddress [Required]string | metricsBindAddress 是指标服务器使用的 IP 地址和端口,默认为 "127.0.0.1:10249"(如果 bindAddress 未设置或为 IPv4),或 "[::1]:10249"(如果 bindAddress 为 IPv6)。(设置为 "0.0.0.0:10249" / "[::]:10249" 可绑定到所有接口。) |
bindAddressHardFail [Required]bool | bindAddressHardFail(如果为 true)会告知 kube-proxy 将绑定端口失败视为致命错误并退出。 |
enableProfiling [Required]bool | enableProfiling 通过 /debug/pprof handler 上的 Web 界面启用性能分析。性能分析 handler 将由指标服务器处理。 |
showHiddenMetricsForVersion [Required]string | showHiddenMetricsForVersion 是您希望显示隐藏指标的版本。 |
mode [Required]ProxyMode | mode 指定要使用的代理模式。 |
iptables [Required]KubeProxyIPTablesConfiguration | iptables 包含与 iptables 相关的配置选项。 |
ipvs [Required]KubeProxyIPVSConfiguration | ipvs 包含与 ipvs 相关的配置选项。 |
nftables [Required]KubeProxyNFTablesConfiguration | nftables 包含与 nftables 相关的配置选项。 |
winkernel [Required]KubeProxyWinkernelConfiguration | winkernel 包含与 winkernel 相关的配置选项。 |
detectLocalMode [Required]LocalMode | detectLocalMode 确定用于检测本地流量的模式,默认为 ClusterCIDR。 |
detectLocal [Required]DetectLocalConfiguration | detectLocal 包含与 DetectLocalMode 相关的可选配置设置。 |
clusterCIDR [Required]string | clusterCIDR 是集群中 pod 的 CIDR 范围。(对于双栈集群,这可以是一个逗号分隔的双栈 CIDR 范围对)。当 DetectLocalMode 设置为 ClusterCIDR 时,如果源 IP 在此范围内,kube-proxy 会认为流量是本地的。(否则不使用此设置。) |
nodePortAddresses [Required][]string | nodePortAddresses 是包含有效节点 IP 的 CIDR 范围列表,或者字符串 'primary'。如果设置为 CIDR 列表,则只接受位于指定范围内的节点 IP 的连接到 NodePort 服务。如果设置为 'primary',NodePort 服务只接受 Node 对象指定的节点 IPv4 和/或 IPv6 地址。如果未设置,则 NodePort 连接将被接受到所有本地 IP。 |
oomScoreAdj [Required]int32 | oomScoreAdj 是 kube-proxy 进程的 oom-score-adj 值。值必须在 [-1000, 1000] 范围内。 |
conntrack [Required]KubeProxyConntrackConfiguration | conntrack 包含与 conntrack 相关的配置选项。 |
configSyncPeriod [Required]meta/v1.Duration | configSyncPeriod 是从 apiserver 刷新配置的频率。必须大于 0。 |
portRange [Required]string | portRange 以前用于配置 userspace 代理,但现在已弃用。 |
windowsRunAsService [Required]bool | windowsRunAsService(如果为 true)启用 Windows 服务控制管理器 API 集成。 |
DetectLocalConfiguration
出现在
DetectLocalConfiguration 包含与 DetectLocalMode 选项相关的可选设置。
| 字段 | 描述 |
|---|---|
bridgeInterface [Required]string | bridgeInterface 是一个桥接接口名称。当 DetectLocalMode 设置为 LocalModeBridgeInterface 时,如果流量源自此桥接接口,kube-proxy 将认为该流量是本地的。 |
interfaceNamePrefix [Required]string | interfaceNamePrefix 是一个接口名称前缀。当 DetectLocalMode 设置为 LocalModeInterfaceNamePrefix 时,如果流量源自名称以该前缀开头的任何接口,kube-proxy 将认为该流量是本地的。 |
KubeProxyConntrackConfiguration
出现在
KubeProxyConntrackConfiguration 包含 Kubernetes 代理服务器的 conntrack 设置。
| 字段 | 描述 |
|---|---|
maxPerCore [Required]int32 | maxPerCore 是每个 CPU 核心的最大 NAT 连接数(0 表示保持限制不变并忽略 min)。 |
min [Required]int32 | min 是要分配的连接跟踪记录的最小值,无论 maxPerCore 如何(设置为 maxPerCore=0 以保持限制不变)。 |
tcpEstablishedTimeout [Required]meta/v1.Duration | tcpEstablishedTimeout 是一个空闲的 TCP 连接将保持打开状态的时间(例如 '2s')。必须大于 0 才能设置。 |
tcpCloseWaitTimeout [Required]meta/v1.Duration | tcpCloseWaitTimeout 是处于 CLOSE_WAIT 状态的空闲 conntrack 条目将在 conntrack 表中保留的时间(例如 '60s')。必须大于 0 才能设置。 |
tcpBeLiberal [Required]bool | tcpBeLiberal(如果为 true),kube-proxy 将为 TCP 连接配置 conntrack 以在宽松模式下运行,并且具有窗口外序列号的数据包不会被标记为 INVALID。 |
udpTimeout [Required]meta/v1.Duration | udpTimeout 是处于 UNREPLIED 状态的空闲 UDP conntrack 条目将在 conntrack 表中保留的时间(例如 '30s')。必须大于 0 才能设置。 |
udpStreamTimeout [Required]meta/v1.Duration | udpStreamTimeout 是处于 ASSURED 状态的空闲 UDP conntrack 条目将在 conntrack 表中保留的时间(例如 '300s')。必须大于 0 才能设置。 |
KubeProxyIPTablesConfiguration
出现在
KubeProxyIPTablesConfiguration 包含 Kubernetes 代理服务器的 iptables 相关配置详细信息。
| 字段 | 描述 |
|---|---|
masqueradeBit [Required]int32 | masqueradeBit 是 iptables fwmark 空间中的一个位,用于 SNAT,前提是使用 iptables 或 ipvs 代理模式。值必须在 [0, 31] 范围内。 |
masqueradeAll [Required]bool | masqueradeAll 告知 kube-proxy SNAT 发送到 Service Cluster IP 的所有流量,当使用 iptables 或 ipvs 代理模式时。这对于某些 CNI 插件可能是必需的。 |
localhostNodePorts [Required]bool | localhostNodePorts(如果为 false),告知 kube-proxy 禁用允许通过 localhost 访问 NodePort 服务的旧行为。(仅适用于 iptables 模式和 IPv4;在其他代理模式或 IPv6 下,localhost NodePorts 永远不允许。) |
syncPeriod [Required]meta/v1.Duration | syncPeriod 是一个时间间隔(例如 '5s'、'1m'、'2h22m'),指示各种重新同步和清理操作执行的频率。必须大于 0。 |
minSyncPeriod [Required]meta/v1.Duration | minSyncPeriod 是 iptables 规则重新同步之间的最小间隔(例如 '5s'、'1m'、'2h22m')。值为 0 表示每次 Service 或 EndpointSlice 更改都会立即触发 iptables 重新同步。 |
KubeProxyIPVSConfiguration
出现在
KubeProxyIPVSConfiguration 包含 Kubernetes 代理服务器的 ipvs 相关配置详细信息。
| 字段 | 描述 |
|---|---|
syncPeriod [Required]meta/v1.Duration | syncPeriod 是一个时间间隔(例如 '5s'、'1m'、'2h22m'),指示各种重新同步和清理操作执行的频率。必须大于 0。 |
minSyncPeriod [Required]meta/v1.Duration | minSyncPeriod 是 IPVS 规则重新同步之间的最小间隔(例如 '5s'、'1m'、'2h22m')。值为 0 表示每次 Service 或 EndpointSlice 更改都会立即触发 IPVS 重新同步。 |
scheduler [Required]string | scheduler 是要使用的 IPVS 调度器。 |
excludeCIDRs [Required][]string | excludeCIDRs 是 ipvs 代理程序在清理 ipvs 服务时应避免接触的 CIDR 列表。 |
strictARP [Required]bool | strictARP 配置 arp_ignore 和 arp_announce 以避免响应来自 kube-ipvs0 接口的 ARP 查询。 |
tcpTimeout [Required]meta/v1.Duration | tcpTimeout 是用于空闲 IPVS TCP 会话的超时值。默认值为 0,表示保留系统当前的超时值。 |
tcpFinTimeout [Required]meta/v1.Duration | tcpFinTimeout 是在收到 FIN 后用于 IPVS TCP 会话的超时值。默认值为 0,表示保留系统当前的超时值。 |
udpTimeout [Required]meta/v1.Duration | udpTimeout 是用于 IPVS UDP 数据包的超时值。默认值为 0,表示保留系统当前的超时值。 |
KubeProxyNFTablesConfiguration
出现在
KubeProxyNFTablesConfiguration 包含 Kubernetes 代理服务器的 nftables 相关配置详细信息。
| 字段 | 描述 |
|---|---|
masqueradeBit [Required]int32 | masqueradeBit 是 iptables fwmark 空间中的一个位,用于 SNAT,前提是使用 nftables 代理模式。值必须在 [0, 31] 范围内。 |
masqueradeAll [Required]bool | masqueradeAll 告知 kube-proxy SNAT 发送到 Service Cluster IP 的所有流量,当使用 nftables 模式时。这对于某些 CNI 插件可能是必需的。 |
syncPeriod [Required]meta/v1.Duration | syncPeriod 是一个时间间隔(例如 '5s'、'1m'、'2h22m'),指示各种重新同步和清理操作执行的频率。必须大于 0。 |
minSyncPeriod [Required]meta/v1.Duration | minSyncPeriod 是 iptables 规则重新同步之间的最小间隔(例如 '5s'、'1m'、'2h22m')。值为 0 表示每次 Service 或 EndpointSlice 更改都会立即触发 iptables 重新同步。 |
KubeProxyWinkernelConfiguration
出现在
KubeProxyWinkernelConfiguration 包含 Kubernetes 代理服务器的 Windows/HNS 设置。
| 字段 | 描述 |
|---|---|
networkName [Required]string | networkName 是 kube-proxy 将用于创建端点和策略的网络名称。 |
sourceVip [Required]string | sourceVip 是源 VIP 端点的 IP 地址,用于负载均衡时的 NAT。 |
enableDSR [Required]bool | enableDSR 告知 kube-proxy 是否应使用 DSR 创建 HNS 策略。 |
rootHnsEndpointName [Required]string | rootHnsEndpointName 是附加到 l2bridge 以用于根网络命名空间的 hnsendpoint 的名称。 |
forwardHealthCheckVip [Required]bool | forwardHealthCheckVip 在 Windows 上转发用于健康检查端口的服务 VIP。 |
LocalMode
(string 的别名)
出现在
LocalMode 表示用于检测节点本地流量的模式。
ProxyMode
(string 的别名)
出现在
ProxyMode 表示 Kubernetes 代理服务器使用的模式。
Linux 平台提供三种代理模式:iptables、ipvs 和 nftables。Windows 平台提供一种代理模式:kernelspace。
如果未指定代理模式,将使用默认代理模式(目前 Linux 上是 iptables,Windows 上是 kernelspace)。如果选定的代理模式因缺乏内核支持、缺少用户空间组件等原因而无法使用,则 kube-proxy 将以错误退出。
本页面是自动生成的。
如果你打算报告此页面存在的问题,请在问题描述中提及此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。