What's New
Multi-Cluster Ingress
The newly introduced MultiClusterIngress API exposes HTTP and HTTPS routes that target multi-cluster services within the Karmada control plane. The specification of MultiClusterIngress
is compatible with Kubernetes Ingress.
Traffic routing is controlled by rules defined on the MultiClusterIngress resource, an MultiClusterIngress controller is responsible for fulfilling the ingress. The Multi-Cluster-Nginx Ingress Controller is one of the MultiClusterIngress controller implementations maintained by the community.
(Feature contributors: @GitHubxsy @XiShanYongYe-Chang)
Federated ResourceQuota
The newly introduced FederatedResourceQuota provides constraints that limit total resource consumption per namespace across all clusters
. It can limit the number of objects that can be created in a namespace by type, as well as the total amount of compute resources that may be consumed by resources in that namespace.
(Feature contributors: @RainbowMango @XiShanYongYe-Chang)
Configurability improvement for performance tuning
The default number of reconciling workers has been enlarged and configurable. A larger number of workers means higher responsiveness but heavier CPU and network load. The number of concurrent workers could be configured by the flags introduced to karmada-controller-manager
and karmada-agent
.
Flags introduced to karmada-controller-manager
:
- --concurrent-work-syncs
- --concurrent-namespace-syncs
- --concurrent-resource-template-syncs
- --concurrent-cluster-syncs
- --concurrent-clusterresourcebinding-syncs
- --concurrent-resourcebinding-syncs
Flags introduced to karmada-agent
:
- --concurrent-work-syncs
- --concurrent-cluster-syncs
(Feature contributor: @pigletfly)
Resource Interpreter Webhook Enhancement
Introduced AggregateStatus
support for the Resource Interpreter Webhook
framework, which enables customized resource status aggregating.
Introduced InterpreterOperationInterpretDependency
support for the Resource Interpreter Webhook
framework, which enables propagating workload's dependencies automatically.
Refer to Customizing Resource Interpreter for more details.
(Feature contributors: @iawia002 @mrlihanbo)
Other Notable Changes
Bug Fixes
karmadactl
andkubectl-karmada
: Fixed thatinit
cannot update theAPIService
. (@prodanlabs, #1207)karmada-controller-manager
: Fixed ApplyPolicySucceed event type mistake (should beNormal
but notWarning
). (@Garrybest, #1267)karmada-controller-manager
andkarmada-agent
: Fixed that resync slows down reconciliation. (@Garrybest, #1265)karmada-controller-manager
/karmada-agent
: Fixed continually updating cluster status due to unordered apiEnablements. (@pigletfly, #1304)karmada-controller-manager
: Fixed that Replicas set by OverridePolicy will be reset by the ReviseReplica interpreterhook. (@likakuli, #1352)karmada-controller-manager
: Fixed that ResourceBinding couldn't be created in a corner case. (@dddddai, #1368)karmada-scheduler
: Fixed inaccuracy in requested resources in the case that pod limits are specified but requests are not. (@Garrybest, #1225)karmada-scheduler
: Fixed spreadconstraints[i].MaxGroups is invalidated in some scenarios. (@huone1, #1324)
Features & Enhancements
karmadactl
: Introduced--tls-min-version
flag to specify the minimum TLS version. (@carlory, #1278)karmadactl
: Improved theget
command to show more useful information. (@lonelyCZ, #1270)karmada-controller-manager
/karmada-agent
: Introduced--resync-period
flag to specify reflector resync period (defaults to 0, meaning no resync). (@Garrybest, #1261)karmada-controller-manager
: Introduced--metrics-bind-address
flag to specify the customized address for metrics. (@pigletfly, #1341)karmada-webhook
: Introduced --metrics-bind-address and --health-probe-bind-address flags. (@mrlihanbo, #1346)
Instrumentation (Metrics and Events)
karmada-controller-manager
: Fixed ApplyPolicySucceed event type mistake (should beNormal
but notWarning
). (@Garrybest, #1267)
Deprecation
- OverridePolicy/ClusterOverridePolicy: The
.spec.targetCluster
andspec.overriders
have been deprecated in favor ofspec.overrideRules
. (@RainbowMango #1238) karmada-aggregate-apiserver
: Deprecated--master
and--karmada-config
flags. Please use--kubeconfig
instead. (@carlory, #1336)
Contributors
Thank you to everyone who contributed to this release!
Users whose commits are in this release (alphabetically by user name)
- @AllenZMC
- @ashley-rongfang
- @carlory
- @CuiDengdeng
- @dddddai
- @EvaDD
- @Fish-pro
- @Garrybest
- @helen-frank
- @huone1
- @iawia002
- @jinglina
- @kerthcet
- @liangyongzhenya
- @likakuli
- @lonelyCZ
- @mrlihanbo
- @pigletfly
- @prodanlabs
- @RainbowMango
- @RishiKumarRay
- @Tingtal
- @viniciuspietscher
- @weilaaa
- @wlp1153468871
- @XiShanYongYe-Chang
- @zach593
- @zgfh