69 lines
5.2 KiB
Markdown
69 lines
5.2 KiB
Markdown
# What's New
|
|
## Multi-Cluster Ingress
|
|
The newly introduced [MultiClusterIngress](https://github.com/karmada-io/karmada/blob/d6355ec85296daa46ed344cade6ef10a9bee58dc/pkg/apis/networking/v1alpha1/ingress_types.go#L16)
|
|
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](https://kubernetes.io/docs/concepts/services-networking/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](https://github.com/karmada-io/multi-cluster-ingress-nginx)
|
|
is one of the MultiClusterIngress controller implementations maintained by the community.
|
|
|
|
|
|
## Federated ResourceQuota
|
|
The newly introduced [FederatedResourceQuota](https://github.com/karmada-io/karmada/blob/master/pkg/apis/policy/v1alpha1/federatedresourcequota_types.go#L14)
|
|
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.
|
|
|
|
|
|
## 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`
|
|
|
|
|
|
## 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](https://github.com/karmada-io/website/blob/main/docs/userguide/globalview/customizing-resource-interpreter.md) for more details.
|
|
|
|
|
|
# Other Notable Changes
|
|
## Bug Fixes
|
|
- `karmadactl` and `kubectl-karmada`: Fixed that init cannot update the `APIService`. [#1207](https://github.com/karmada-io/karmada/pull/1207)
|
|
- `karmada-controller-manager`: Fixed ApplyPolicySucceed event type mistake (should be `Normal` but not `Warning`). [#1267](https://github.com/karmada-io/karmada/pull/1267)
|
|
- `karmada-controller-manager` and `karmada-agent`: Fixed that resync slows down reconciliation. [1265](https://github.com/karmada-io/karmada/pull/1265)
|
|
- `karmada-controller-manager`/`karmada-agent`: Fixed continually updating cluster status due to unordered apiEnablements. [#1304](https://github.com/karmada-io/karmada/pull/1304)
|
|
- `karmada-controller-manager`: Fixed that Replicas set by OverridePolicy will be reset by the ReviseReplica interpreterhook. [#1352](https://github.com/karmada-io/karmada/pull/1352)
|
|
- `karmada-controller-manager`: Fixed that ResourceBinding couldn't be created in a corner case. [#1368](https://github.com/karmada-io/karmada/pull/1368)
|
|
- `karmada-scheduler`: Fixed inaccuracy in requested resources in the case that pod limits are specified but requests are not. [#1225](https://github.com/karmada-io/karmada/pull/1225)
|
|
- `karmada-scheduler`: Fixed spreadconstraints[i].MaxGroups is invalidated in some scenarios. [#1324](https://github.com/karmada-io/karmada/pull/1324)
|
|
## Features & Enhancements
|
|
- `karmadactl`: Introduced --tls-min-version flag to specify the minimum TLS version. [#1278](https://github.com/karmada-io/karmada/pull/1278)
|
|
- `karmadactl`: Improved the get command to show more useful information. [#1270](https://github.com/karmada-io/karmada/pull/1270)
|
|
- `karmada-controller-manager`/`karmada-agent`: Introduced --resync-period flag to specify reflector resync period (defaults to 0, meaning no resync). [#1261](https://github.com/karmada-io/karmada/pull/1261)
|
|
- `karmada-controller-manager`: Introduced --metrics-bind-address flag to specify the customized address for metrics. [#1341](https://github.com/karmada-io/karmada/pull/1341)
|
|
- `karmada-webhook`: Introduced --metrics-bind-address and --health-probe-bind-address flags. [#1346](https://github.com/karmada-io/karmada/pull/1346)
|
|
## Instrumentation (Metrics and Events)
|
|
- `karmada-controller-manager`: Fixed ApplyPolicySucceed event type mistake (should be Normal but not Warning). [#1267](https://github.com/karmada-io/karmada/pull/1267)
|
|
## Deprecation
|
|
- `OverridePolicy`/`ClusterOverridePolicy`: The `.spec.targetCluster` and `spec.overriders` have been deprecated in favor of `spec.overrideRules`. [#1238](https://github.com/karmada-io/karmada/pull/1238)
|
|
- `karmada-aggregate-apiserver`: Deprecated `--master` and `--karmada-config` flags. Please use `--kubeconfig` instead. [#1336](https://github.com/karmada-io/karmada/pull/1336)
|