diff --git a/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go b/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go index add86cdcbf0..3916224b7ef 100644 --- a/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go +++ b/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go @@ -148,14 +148,17 @@ type KubeProxyConfiguration struct { ConfigSyncPeriod metav1.Duration `json:"configSyncPeriod"` } -// Currently two modes of proxying are available: 'userspace' (older, stable) or 'iptables' -// (newer, faster). If blank, use the best-available proxy (currently iptables, but may -// change in future versions). If the iptables proxy is selected, regardless of how, but -// the system's kernel or iptables versions are insufficient, this always falls back to the -// userspace proxy. -type ProxyMode string +// Currently, three modes of proxy are available in Linux platform: 'userspace' (older, going to be EOL), 'iptables' +// (newer, faster), 'ipvs'(newest, better in performance and scalability). +// +// Two modes of proxy are available in Windows platform: 'userspace'(older, stable) and 'kernelspace' (newer, faster). +// +// In Linux platform, if proxy mode is blank, use the best-available proxy (currently iptables, but may change in the +// future). If the iptables proxy is selected, regardless of how, but the system's kernel or iptables versions are +// insufficient, this always falls back to the userspace proxy. IPVS mode will be enabled when proxy mode is set to 'ipvs', +// and the fall back path is firstly iptables and then userspace. -const ( - ProxyModeUserspace ProxyMode = "userspace" - ProxyModeIPTables ProxyMode = "iptables" -) +// In Windows platform, if proxy mode is blank, use the best-available proxy (currently userspace, but may change in the +// future). If winkernel proxy is selected, regardless of how, but the Windows kernel can't support this mode of proxy, +// this always falls back to the userspace proxy. +type ProxyMode string