karmada v1.2.0 release #1907
kevin-wangzefeng
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
What's New
Significant improvement on scheduling capability and scalability
1. Karmada Descheduler
A new component
karmada-descheduler
was introduced, for rebalancing the scheduling decisions over time.One example use case is: it helps evict pending replicas (Pods) from resource-starved clusters so that
karmada-scheduler
can "reschedule" these replicas (Pods) to a cluster with sufficient resources.For more details please refer to Descheduler user guide.
(Feature contributor: @Garrybest)
2. Multi region HA support
By leveraging the newly added
spread-by-region
constraint, users are now able to deploy workloads arossregions
, e.g. people may want their workloads always running on different regions for HA purposes.We also introduced two plugins to
karmada-scheduler
, which add to accurate scheduling.ClusterLocality
is a scoring plugin that favors clusters already assigned.SpreadConstraint
is a filter plugin that filters clusters as per spread constraints.(Feature contributors: @huone1, @gf457832386)
We are also in the progress of enhancing the multi-cluster failover mechanism. Part of the work has been included in this release.
For example:
--cluster-failure-threshold
) has been added to bothkarmada-controller-manager
andkarmada-agent
, which specifies the cluster failure threshold (defaults to 30s). A cluster will be considerednot-ready
only when it stays unhealthy longer than supposed.--failover-eviction-timeout
) has been added tokarmada-controller-manager
, which specifies the grace period of eviction (defaults to 5 minutes). If a cluster staysnot-ready
longer than supposed, the controller taints the cluster. (Note: The taint is essentially the eviction order and the implementation is planned for the next release.)(Feature contributors: @Garrybest, @dddddai)
Fully adopted aggregated API
The
Aggregated API
was initially introduced in Release 1.0, which allows users to access clusters through Karmada by a single aggregated API endpoint. By leveraging this feature, we introduced a lot of interesting features tokarmadactl
andkubectl-karmada
.1. The
get
sub-command now supports clusters both inpush
andpull
mode.# karmadactl get deployment -n default NAME CLUSTER READY UP-TO-DATE AVAILABLE AGE ADOPTION nginx member1 2/2 2 2 33h N nginx member2 1/1 1 1 4m38s Y podinfo member3 2/2 2 2 27h N
2. The newly added
logs
command prints the container logs in a specific cluster.3. We also added
watch
andexec
commands tokarmadactl
, in addition toget
andlogs
. They all use the aggregated API.(Feature contributor: @lonelyCZ)
Distributed search and analytics engine for Kubernetes resources (
alpha
)The newly introduced
karmada-search
caches resources in clusters and allows users to search for resources without directly touching real clusters.The
karmada-search
also supports syncing cached resources to backend stores like Elasticsearch or OpenSearch. By leveraging the search engine, you can perform full-text searches with all desired features, by field, and by indice; rank results by score, sort results by field, and aggregate results.(Feature contributors: @huntsman-li, @liys87x)
Resource Interpreter Webhook enhancement
Introduced
InterpretStatus
for theResource Interpreter Webhook
framework, which enables customized resource status collection.Karmada can thereby learn how to collect status for your resources, especially custom resources. For example, a custom resource may have many status fields and only Karmada can collect only those you want.
Refer to [Customizing Resource Interpreter][https://github.com/karmada-io/karmada/blob/master/docs/userguide/customizing-resource-interpreter.md] for more details.
(Feature contributor: @XiShanYongYe-Chang)
Integrating verification with the ecosystem
Benefiting from the Kubernetes native APIs, Karmada can easily integrate the Kubernetes ecosystem. The following components are verified by the Karmada community:
Kyverno
: policy engine. Refer to working with kyverno for more details.Gatekeeper
: another policy engine. Refer to working with gatekeeper for more details.fluxcd
: GitOps tooling for helm chart. Refer to working with fluxcd for more details.(Feature contributors: @Poor12, @learner0810)
Other Notable Changes
Bug Fixes
karmadactl
: Fixed the cluster joining failures in the case of legacy secrets. (@zgfh, #1306)karmadactl
: Fixed the issue that you cannot use the '-v 6' log level. (@zgfh, #1426)karmadactl
: Fixed the issue that the--namespace
flag ofinit
command did not work. (@sayaoailun, #1416)karmadactl
: Allowed namespaces to be customized. (@sayaoailun, #1449)karmadactl
: Fixed theinit
failure due to data path not clean. (@prodanlabs, #1455)karmadactl
: Fixed theinit
failure to read the KUBECONFIG environment variable. (@lonelyCZ, #1437)karmadactl
: Fixed theinit
command failure to select the default release version. (@prodanlabs, #1456)karmadactl
: Fixed the issue that thekarmada-system
namespace already exists when deployingkarmada-agent
. (@hanweisen, #1604)karmadactl
: Fixed the issue that the karmada-controller-manager args did not honor customized namespaces.` (@prodanlabs, #1683)karmadactl
: Fixed a panic due to nil annotation whenpromoting
resources to Karmada.` (@duanmengkk, #1759)karmadactl
: Fixed thepromote
command failure to migrate cluster-scoped resources. (@duanmengkk, #1766)karmadactl
: fixed the karmadactl taint failure while the karmada control plane config is not located in the default path. (@wuyingjun-lucky, #1825)helm-chart
: Fixed the karmada-agent installation failure due to the lack of permission. (@AllenZMC, #1457)helm-chart
: Fixed the issue that version constraints skip pre-releases. (@pigletfly, #1444)karmada-controller-manager
: Fixed the issue that ResourceBinding may hinder en-queue in the case of schedule failures. (@mrlihanbo, #1499)karmada-controller-manager
: Fixed the panic when the interpreter webhook returns nil patch. (@CharlesQQ, #1584)karmada-controller-manager
: Fixed the RB/CRB controller failure to aggregate status in the case of work condition update. (@mrlihanbo, #1513)karmada-aggregate-apiserver
: Fixed timeout issue when requestingcluster/proxy
with options-w
orlogs -f
fromkarmadactl get
. (@XiShanYongYe-Chang, #1620)karmada-aggregate-apiserver
: Fixed exec failed:error: unable to upgrade connection: you must specify at least 1 of stdin, stdout, stderr
. (@pangsq, #1632)Features & Enhancements
karmada-controller-manager
: Introduced several flags to specify controller's concurrent capacities(--rate-limiter-base-delay
,--rate-limiter-max-delay
,--rate-limiter-qps
,--rate-limiter-bucket-size
). (@pigletfly, #1399)karmada-controller-manager
: The klog flags now have been grouped for better readability. (@RainbowMango, #1468)karmada-controller-manager
: Fixed theFullyApplied
condition ofResourceBinding/ClusterResourceBinding
mislabeling issue in the case of non-scheduling. (@huone1, #1512)karmada-controller-manager
: Added defaultAggregateStatus
webhook forDaemonSet
andStatefulSet
. (@Poor12, #1586)karmada-controller-manager
:OverridePolicy
with emptyResourceSelector
will be considered to match all resources just like nil. (@likakuli, #1706)karmada-controller-manager
: Introduced--failover-eviction-timeout
to specify the grace period of eviction. Tants(cluster.karmada.io/not-ready
orcluster.karmada.io/unreachable
) will be set on unhealthy clusters after the period. (@Garrybest, #1781)karmada-controller-manager/karmada-agent
: Introduced--cluster-failure-threshold
flag to specify cluster failure threshold. (@dddddai, #1829)karmada-scheduler
: Workloads can now be rescheduled after the cluster is unregistered. (@huone1, #1383)karmada-scheduler
: The klog flags now have been grouped for better readability. (@jameszhangyukun, #1491)karmada-scheduler
: Added a scoring pluginClusterLocality
to favor clusters already requested. (@huone1, #1334)karmada-scheduler
: Introduced filter pluginSpreadConstraint
to filter clusters that do not meet the spread constraints. (@gf457832386, #1570)karmada-scheduler
: Supported spread constraints by region strategy. (@huone1, #1646)karmada-webhook
: Introduced--tls-cert-file-name
and--tls-private-key-file-name
flags to specify the server certificate and private key. (@mrlihanbo, #1464)karmada-agent
: The klog flags now have been grouped for better readability. (@lonelyCZ, #1389)karmada-agent
: Introduced several flags to specify controller's concurrent capacities(--rate-limiter-base-delay
,--rate-limiter-max-delay
,--rate-limiter-qps
,--rate-limiter-bucket-size
). (@dddddai, #1505)karmada-scheduler-estimator
: The klog flags now have been grouped for better readability. (@AllenZMC, #1493)karmadactl
: Introduced--context
flag to specify the context name to use. (@lonelyCZ, #1748)karmadactl
: Introduced--kube-image-mirror-country
and--kube-image-registry
flags toinit
subcommand for Chinese mainland users. (@wuyingjun-lucky, #1764)karmadactl: Introduced
deinitsub-command to uninstall Karmada.
(@prodanlabs, #1337)Other (Dependencies)
alpine
has been promoted tov3.15.1
. (@RainbowMango, #1519)Deprecation
karmada-controller-manager
: Thehpa
controller is disabled by default now. (@Poor12, #1580)karmada-aggregated-apiserver
: The deprecated flags--karmada-config
and--master
in v1.1 have been removed from the codebase. (@AllenZMC, #1834)Contributors
Thank you to everyone who contributed to this release!
Users whose commits are in this release (alphabetically by user name)
This discussion was created from the release karmada v1.2.0 release.
Beta Was this translation helpful? Give feedback.
All reactions