github karmada-io/karmada v0.10.0
karmada v0.10.0 release

latest releases: v1.11.1, v1.10.5, v1.9.7...
2 years ago

What's New

Resource Interpreter Webhook

The newly introduced Resource Interpreter Webhook framework allows users to implement their own CRD plugins that will be consulted at all parts of propagation process. With this feature, CRDs and CRs will be propagated just like Kubernetes native resources, which means all scheduling primitives also support custom resources. An example as well as some helpful utilities are provided to help users better understand how this framework works.

Refer to Proposal for more details.

(Feature contributor: @RainbowMango, @XiShanYongYe-Chang, @gy95)

Significant Scheduling Enhancement

  1. Introduced dynamicWeight primitive to PropagationPolicy and ClusterPropagationPolicy. With this feature, replicas could be divided by a dynamic weight list, and the weight of each cluster will be calculated based on the available replicas during scheduling.
    This feature can balance the cluster's utilization significantly. (#841)

  2. Introduced Job schedule (divide) support. A Job that desires many replicas now could be divided into many clusters just like Deployment.
    This feature makes it possible to run huge Jobs across small clusters. (#898)

(Feature contributor: @Garrybest )

Workloads Observation from Karmada Control Plane

After workloads (e.g. Deployments) are propagated to member clusters, users may also want to get the overall workload status across many clusters, especially the status of each pod. In this release, a get subcommand was introduced to the kubectl-karmada. With this command, user are now able get all kinds of resources deployed in member clusters from the Karmada control plane.

For example (get deployment and pods across clusters):

$ kubectl karmada get deployment
NAME    CLUSTER   READY   UP-TO-DATE   AVAILABLE   AGE   ADOPTION
nginx   member2   1/1     1            1           19m   Y
nginx   member1   1/1     1            1           19m   Y
$ kubectl karmada get pods
NAME                     CLUSTER   READY   STATUS    RESTARTS   AGE
nginx-6799fc88d8-vzdvt   member1   1/1     Running   0          31m
nginx-6799fc88d8-l55kk   member2   1/1     Running   0          31m

(Feature contributor: @lfbear @QAQ-rookie)

Other Notable Changes

  • karmada-scheduler-estimator: The number of pods becomes an important reference when calculating available replicas for the cluster. (@Garrybest, #777)
  • The labels (resourcebinding.karmada.io/namespace, resourcebinding.karmada.io/name, clusterresourcebinding.karmada.io/name) which were previously added on the Work object now have been moved to annotations. (@XiShanYongYe-Chang, #752)
  • Bugfix: Fixed the impact of cluster unjoining on resource status aggregation. (@dddddai, #817)
  • Instrumentation: Introduced events (SyncFailed and SyncSucceed) to the Work object. (@wawa0210, #800)
  • Instrumentation: Introduced condition (Scheduled) to the ResourceBinding and ClusterResourceBinding. (@dddddai, #823)
  • Instrumentation: Introduced events (CreateExecutionNamespaceFailed and RemoveExecutionNamespaceFailed) to the Cluster object. (@pigletfly, #749)
  • Instrumentation: Introduced several metrics (workqueue_adds_total, workqueue_depth, workqueue_longest_running_processor_seconds, workqueue_queue_duration_seconds_bucket) for karmada-agent and karmada-controller-manager. (@Garrybest, #831)
  • Instrumentation: Introduced condition (FullyApplied) to the ResourceBinding and ClusterResourceBinding. (@lonelyCZ, #825)
  • karmada-scheduler: Introduced feature gates. (@iawia002, #805)
  • karmada-controller-manager: Deleted resources from member clusters that use "Background" as the default delete option. (@RainbowMango, #970)

Contributors

Thank you to everyone who contributed to this release!

Users whose commits are in this release (alphabetically by user name)

Don't miss a new karmada release

NewReleases is sending notifications on new releases.