Merge pull request #41031 from danwinship/kep-3453-stable
KEP-3453 to GA
This commit is contained in:
commit
b96f68742a
|
|
@ -147,8 +147,6 @@ For a reference to old feature gates that are removed, please refer to
|
||||||
| `MinDomainsInPodTopologySpread` | `false` | Alpha | 1.24 | 1.24 |
|
| `MinDomainsInPodTopologySpread` | `false` | Alpha | 1.24 | 1.24 |
|
||||||
| `MinDomainsInPodTopologySpread` | `false` | Beta | 1.25 | 1.26 |
|
| `MinDomainsInPodTopologySpread` | `false` | Beta | 1.25 | 1.26 |
|
||||||
| `MinDomainsInPodTopologySpread` | `true` | Beta | 1.27 | |
|
| `MinDomainsInPodTopologySpread` | `true` | Beta | 1.27 | |
|
||||||
| `MinimizeIPTablesRestore` | `false` | Alpha | 1.26 | 1.26 |
|
|
||||||
| `MinimizeIPTablesRestore` | `true` | Beta | 1.27 | |
|
|
||||||
| `MultiCIDRRangeAllocator` | `false` | Alpha | 1.25 | |
|
| `MultiCIDRRangeAllocator` | `false` | Alpha | 1.25 | |
|
||||||
| `MultiCIDRServiceAllocator` | `false` | Alpha | 1.27 | |
|
| `MultiCIDRServiceAllocator` | `false` | Alpha | 1.27 | |
|
||||||
| `NetworkPolicyStatus` | `false` | Alpha | 1.24 | |
|
| `NetworkPolicyStatus` | `false` | Alpha | 1.24 | |
|
||||||
|
|
@ -292,6 +290,9 @@ For a reference to old feature gates that are removed, please refer to
|
||||||
| `LegacyServiceAccountTokenTracking` | `false` | Alpha | 1.26 | 1.26 |
|
| `LegacyServiceAccountTokenTracking` | `false` | Alpha | 1.26 | 1.26 |
|
||||||
| `LegacyServiceAccountTokenTracking` | `true` | Beta | 1.27 | 1.27 |
|
| `LegacyServiceAccountTokenTracking` | `true` | Beta | 1.27 | 1.27 |
|
||||||
| `LegacyServiceAccountTokenTracking` | `true` | GA | 1.28 | - |
|
| `LegacyServiceAccountTokenTracking` | `true` | GA | 1.28 | - |
|
||||||
|
| `MinimizeIPTablesRestore` | `false` | Alpha | 1.26 | 1.26 |
|
||||||
|
| `MinimizeIPTablesRestore` | `true` | Beta | 1.27 | 1.27 |
|
||||||
|
| `MinimizeIPTablesRestore` | `true` | GA | 1.28 | - |
|
||||||
| `MixedProtocolLBService` | `false` | Alpha | 1.20 | 1.23 |
|
| `MixedProtocolLBService` | `false` | Alpha | 1.20 | 1.23 |
|
||||||
| `MixedProtocolLBService` | `true` | Beta | 1.24 | 1.25 |
|
| `MixedProtocolLBService` | `true` | Beta | 1.24 | 1.25 |
|
||||||
| `MixedProtocolLBService` | `true` | GA | 1.26 | - |
|
| `MixedProtocolLBService` | `true` | GA | 1.26 | - |
|
||||||
|
|
|
||||||
|
|
@ -138,26 +138,6 @@ iptables:
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Performance optimization for `iptables` mode {#minimize-iptables-restore}
|
|
||||||
|
|
||||||
{{< feature-state for_k8s_version="v1.27" state="beta" >}}
|
|
||||||
|
|
||||||
In Kubernetes {{< skew currentVersion >}} the kube-proxy defaults to a minimal approach
|
|
||||||
to `iptables-restore` operations, only making updates where Services or EndpointSlices have
|
|
||||||
actually changed. This is a performance optimization.
|
|
||||||
The original implementation updated all the rules for all Services on every sync; this
|
|
||||||
sometimes led to performance issues (update lag) in large clusters.
|
|
||||||
|
|
||||||
If you are not running kube-proxy from Kubernetes {{< skew currentVersion >}}, check
|
|
||||||
the behavior and associated advice for the version that you are actually running.
|
|
||||||
|
|
||||||
If you were previously overriding `minSyncPeriod`, you should try
|
|
||||||
removing that override and letting kube-proxy use the default value
|
|
||||||
(`1s`) or at least a smaller value than you were using before upgrading.
|
|
||||||
You can select the legacy behavior by disabling the `MinimizeIPTablesRestore`
|
|
||||||
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/)
|
|
||||||
(you should not need to).
|
|
||||||
|
|
||||||
##### `minSyncPeriod`
|
##### `minSyncPeriod`
|
||||||
|
|
||||||
The `minSyncPeriod` parameter sets the minimum duration between
|
The `minSyncPeriod` parameter sets the minimum duration between
|
||||||
|
|
@ -189,6 +169,22 @@ Especially, if kube-proxy's `sync_proxy_rules_duration_seconds` metric
|
||||||
indicates an average time much larger than 1 second, then bumping up
|
indicates an average time much larger than 1 second, then bumping up
|
||||||
`minSyncPeriod` may make updates more efficient.
|
`minSyncPeriod` may make updates more efficient.
|
||||||
|
|
||||||
|
##### Updating legacy `minSyncPeriod` configuration {#minimize-iptables-restore}
|
||||||
|
|
||||||
|
Older versions of kube-proxy updated all the rules for all Services on
|
||||||
|
every sync; this led to performance issues (update lag) in large
|
||||||
|
clusters, and the recommended solution was to set a larger
|
||||||
|
`minSyncPeriod`. Since Kubernetes v1.28, the iptables mode of
|
||||||
|
kube-proxy uses a more minimal approach, only making updates where
|
||||||
|
Services or EndpointSlices have actually changed.
|
||||||
|
|
||||||
|
If you were previously overriding `minSyncPeriod`, you should try
|
||||||
|
removing that override and letting kube-proxy use the default value
|
||||||
|
(`1s`) or at least a smaller value than you were using before upgrading.
|
||||||
|
|
||||||
|
If you are not running kube-proxy from Kubernetes {{< skew currentVersion >}}, check
|
||||||
|
the behavior and associated advice for the version that you are actually running.
|
||||||
|
|
||||||
##### `syncPeriod`
|
##### `syncPeriod`
|
||||||
|
|
||||||
The `syncPeriod` parameter controls a handful of synchronization
|
The `syncPeriod` parameter controls a handful of synchronization
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue