RATATOSKRATATOSK
로그인

Karmada

v1.17.6Orchestration & Management
2026년 8월 31일

CHECK 4PLAN 5OTHER 83

워크로드 배치 친화도와 저장 데이터 암호화 기능을 더하고, 컨트롤러의 성능과 정확성을 개선한 유지보수 릴리스입니다. 의존성, 이미지, Helm 지원을 갱신하고 일부 기본값을 바꾸는 한편 더 이상 쓰지 않는 인터페이스를 정리했습니다.

영향 확인 (4)

  • breakingWorkloadAffinity의 중복 GroupByLabelKey 설정 제한

    WorkloadAffinityGroupByLabelKey를 설정한 경우에 적용됩니다.

    WorkloadAffinity에서 affinityantiAffinity에 같은 GroupByLabelKey를 설정할 수 없도록 제한했습니다.

    karmada#7222

  • breaking--etcd-init-image 플래그 제거

    --etcd-init-image를 사용하는 경우에 적용됩니다.

    karmadactlinit 명령에서 더 이상 사용하지 않는 --etcd-init-image 플래그를 제거했습니다.

    karmada#6974

  • breaking기본 구성 요소 이미지 버전 갱신

    kube-apiserver, kube-controller-manager 또는 ETCD에 의존하는 경우에 적용됩니다.

    기본 kube-apiserverkube-controller-manager 이미지를 v1.34.1에서 v1.35.2로, 기본 ETCD 이미지를 3.6.0-0에서 3.6.6-0으로 갱신했습니다.

  • breakingControllerPriorityQueue 베타 승격 및 기본 활성화

    ControllerPriorityQueue를 활성화한 경우에 적용됩니다.

    ControllerPriorityQueue를 베타 단계로 올리고 기본값으로 활성화했습니다.

미리 준비 (5)

  • deprecated클러스터 임대 관련 플래그 사용 중단 예고v1.17.0부터 · 제거 시점 미정

    --cluster-lease-duration 또는 --cluster-lease-renew-interval-fraction을 사용하는 경우에 적용됩니다.

    karmada-controller-manager--cluster-lease-duration--cluster-lease-renew-interval-fraction 플래그를 더 이상 사용하지 않는 항목으로 지정했으며, 향후 릴리스에서 제거할 예정입니다.

    karmada#7126

  • deprecatedEtcd.Local.InitImage 사용 중단 예고v1.17.0부터 · 제거 시점 미정

    karmadactlKarmada Init Configuration에서 Etcd.Local.InitImage 사용을 중단했으며, 향후 버전에서 제거할 예정입니다.

    karmada#6995

  • deprecated--cluster-lease-duration 사용 중단 예고제거 시점 미정

    --cluster-lease-duration을 사용하는 경우에 적용됩니다.

    --cluster-lease-duration--cluster-lease-renew-interval-fraction 플래그를 더 이상 사용하지 않는 항목으로 지정했으며, 향후 릴리스에서 제거할 예정입니다.

  • deprecated--cluster-lease-renew-interval-fraction 사용 중단 예고제거 시점 미정

    --cluster-lease-renew-interval-fraction을 사용하는 경우에 적용됩니다.

    --cluster-lease-duration--cluster-lease-renew-interval-fraction 플래그를 더 이상 사용하지 않는 항목으로 지정했으며, 향후 릴리스에서 제거할 예정입니다.

  • deprecatedEtcd.Local.InitImage 사용 중단 예고제거 시점 미정

    Etcd.Local.InitImage를 설정한 경우에 적용됩니다.

    Karmada Init ConfigurationEtcd.Local.InitImage를 더 이상 사용하지 않는 항목으로 지정했으며, 향후 버전에서 제거할 예정입니다.

그 외 기록된 변경 83건 전체fixes 41 · value changes 21 · additions 19 · constraints 1 · defaults 1

fixes (41)

  • - karmada-controller-manager: Fixed an issue where the taint-manager eviction queue would enqueue bindings with indefinite taint tolerations. ([#7773](https://github.com/karmada-io/karmada/pull/7773), @karmada-bot)
  • - karmada-controller-manager: Fixed an issue where Cluster.status.remedyActions could remain stale after an associated Remedy resource was removed. ([#7789](https://github.com/karmada-io/karmada/pull/7789), @karmada-bot)
  • - helm chart: Fixed TLS certificate SAN mismatch when deploying to a custom namespace by adding systemNamespace SANs to certs.auto.hosts. ([#7687](https://github.com/karmada-io/karmada/pull/7687), @karmada-bot)
  • - karmada-operator-chart: Fixed issue with embedding the Karmada CRD, which has exceeded the config map size limit, into a config map used by the chart CRD installation/upgrade job, that prevented users from upgrading the chart. ([#7484](https://github.com/karmada-io/karmada/pull/7484), @jabellard)
  • - karmada-search: Fixed the issue that watch connect cannot reflect resources from recovered clusters immediately. ([#7523](https://github.com/karmada-io/karmada/pull/7523), @Ady0333)
  • - karmada-scheduler: Fixed the issue when cluster resources are insufficient, multiple template resources can still be scheduled. ([#7579](https://github.com/karmada-io/karmada/pull/7579), @jabellard)
  • - karmada-controller-manager: Fixed the issue that a transient ClusterClientSetFunc failure (e.g. missing SecretRef during credential rotation) would immediately set the cluster Ready=False without respecting ClusterFailureThreshold, potentially triggering unnecessary workload failover. ([#7569](https://github.com/karmada-io/karmada/pull/7569), @zhangsquared)
  • - karmada-operator: Fixed the issue that the operator did not apply tolerations and affinity settings to karmada-aggregated-apiserver and karmada-search deployments when configured via the Karmada CR. ([#7451](https://github.com/karmada-io/karmada/pull/7451), @jabellard)
  • - karmada-operator: Fixed init reconciliation failure by replacing non-idempotent secret creation with an idempotent approach. ([#7406](https://github.com/karmada-io/karmada/pull/7406), @anr)
  • - karmada-scheduler: Fixed an issue where the schedule success event was missing cluster information when scheduling with ClusterAffinities. ([#7418](https://github.com/karmada-io/karmada/pull/7418), @cotishq)
  • - karmada-scheduler: Fixed incorrect error type propagation that caused bindings with insufficient cluster replicas to be misrouted to backoffQ instead of unschedulableBindings. ([#7353](https://github.com/karmada-io/karmada/pull/7353), @SujoyDutta)
  • - Fixed the issue that Job completions were assigned to the wrong replicas for each cluster. ([#7397](https://github.com/karmada-io/karmada/pull/7397), @Ady0333)
  • - karmada-agent: Fixed the issue where certificate rotation CSRs were never auto-approved due to a SignerName mismatch between cert_rotation_controller and agent_csr_approving. ([#7311](https://github.com/karmada-io/karmada/pull/7311), @Denyme24)
  • - karmada-chart: Fixed unrendered {{ ca_crt }} during upgrades. ([#7331](https://github.com/karmada-io/karmada/pull/7331), @AbhinavPInamdar)
  • - karmada-controller-manager: Fixed a race condition where graceful eviction tasks could be silently dropped when multiple controllers concurrently modify the same ResourceBinding or ClusterResourceBinding, preventing workloads from being evacuated from tainted or failing clusters. ([#7308](https://github.com/karmada-io/karmada/pull/7308), @Ady0333)
  • - openapi schema: Fixed the unknown model error by using fully qualified model names as OpenAPI model names instead of Go type names. ([#7301](https://github.com/karmada-io/karmada/pull/7301), @zhzhuang-zju)
  • - karmada-controller-manager: Fixed the issue where the job status aggregator could enter an error loop due to a race condition when setting the initial startTime. ([#7138](https://github.com/karmada-io/karmada/pull/7138), @zhzhuang-zju)
  • - karmada-controller-manager: Fixed CronFederatedHPA scale-up from zero failure when the replicas field is missing. ([#7183](https://github.com/karmada-io/karmada/pull/7183), @zhengjr9)
  • - karmada-controller-manager: Fixed an issue where a per-task GracePeriodSeconds value could leak to subsequent graceful eviction tasks, causing premature or delayed evictions. ([#7184](https://github.com/karmada-io/karmada/pull/7184), @Ady0333)
  • - karmada-controller-manager: Fixed an issue where dependency updates could overwrite other controller annotations during retry conflicts. ([#7208](https://github.com/karmada-io/karmada/pull/7208), @Ady0333)
  • - karmada-controller-manager: Fixed an issue where policy deletion could be blocked if a resource selector targeted a non-existent resource. ([#7038](https://github.com/karmada-io/karmada/pull/7038), @zhzhuang-zju)
  • - karmada-controller-manager: Fixed the issue that HelmRelease did not define observedGeneration variable in the statusAggregation operation. ([#7057](https://github.com/karmada-io/karmada/pull/7057), @FAUST-BENCHOU)×2
  • - karmada-scheduler: Fixed a scheduler panic caused by a divide-by-zero error when calculating spread constraints with no valid clusters. ([#7154](https://github.com/karmada-io/karmada/pull/7154), @Aman-Cool)
  • - karmada-scheduler: Fixed an issue that prevented multi-component workloads from being rescheduled during cluster failover events. ([#7066](https://github.com/karmada-io/karmada/pull/7066), @mszacillo)
  • - karmada-scheduler: Fixed the issue that dynamicScaleDown used stale clusters for scale-down operations. ([#7110](https://github.com/karmada-io/karmada/pull/7110), @zhzhuang-zju)
  • - karmada-scheduler: Fixed the bug in the backoff queue where the sorting function was incorrect, potentially causing high-priority items with long backoffs to block lower-priority items. ([#6987](https://github.com/karmada-io/karmada/pull/6987), @rayo1uo)
  • karmada-scheduler-estimator: Fixed the issue where the resource quota plugin failed to list resource quotas due to a missing namespace in the gRPC request.
  • karmadactl: Fixed the messy auto-completion suggestions for commands like get and apply.
  • karmada-webhook: Fixed an issue where the condition.reason was not set to QuotaExceeded when FederatedResourceQuota is exceeded.
  • Fixed the issue where the job status aggregator could enter an error loop due to a race condition when setting the initial startTime.
  • Fixed CronFederatedHPA scale-up from zero failure when the replicas field is missing.
  • Fixed an issue where a per-task GracePeriodSeconds value could leak to subsequent graceful eviction tasks, causing premature or delayed evictions.
  • Fixed a scheduler panic caused by a divide-by-zero error when calculating spread constraints with no valid clusters.
  • Fixed an issue that prevented multi-component workloads from being rescheduled during cluster failover events.
  • Fixed the issue that dynamicScaleDown used stale clusters for scale-down operations.
  • Fixed an issue where policy deletion could be blocked if a resource selector targeted a non-existent resource.
  • Fixed the bug in the backoff queue where the sorting function was incorrect, potentially causing high-priority items with long backoffs to block lower-priority items.
  • - karmadactl: Fixed the messy auto-completion suggestions for commands like 'get' and 'apply'. ([#7023](https://github.com/karmada-io/karmada/pull/7023), @zhzhuang-zju)
  • - karmada-controller-manager: Fixed the issue where PP/CPP cannot be deleted because the resources API selected by the PP/CPP do not exist on the control plane. ([#7024](https://github.com/karmada-io/karmada/pull/7024), @XiShanYongYe-Chang)
  • Fixed the issue where PP/CPP cannot be deleted

value changes (21)

  • - The base image alpine has been promoted from alpine:3.23.4 to alpine:3.24.1 to address security concerns. ([#7629](https://github.com/karmada-io/karmada/pull/7629), @dependabot; [#7653](https://github.com/karmada-io/karmada/pull/7653), @dependabot)
  • - The base image alpine has been promoted from alpine:3.23.3 to alpine:3.23.4 to address security concerns. ([#7414](https://github.com/karmada-io/karmada/pull/7414), @dependabot)
  • It is now promoted to **Beta** and **enabled by default**.
  • This optimization reduced the initial controller startup and queue processing time from **over 20 minutes to approximately 5 minutes**, ensuring faster response and greater system stability.
  • - karmada-controller-manager: Populated ResourceBinding with WorkloadAffinity fields. ([#7166](https://github.com/karmada-io/karmada/pull/7166), @dahuo98)
  • - karmada-operator: Supported explicit tolerations and affinity for all Karmada control plane components via the Karmada CR. ([#6480](https://github.com/karmada-io/karmada/pull/6480), @abhinav-1305)
  • - karmada-operator: The default kube-apiserver and kube-controller-manager images have been updated from v1.34.1 to v1.35.2. And the default ETCD Image has been updated from 3.6.0-0 to 3.6.6-0. ([#7229](https://github.com/karmada-io/karmada/pull/7229), @RainbowMango)
  • - karmada-scheduler: Improved scheduling consistency for workload affinity groups during rapid scheduling cycles by introducing a dedicated cache for recently committed ResourceBindings. ([#7221](https://github.com/karmada-io/karmada/pull/7221), @zhzhuang-zju, @mszacillo)
  • Upgraded Kubernetes dependencies to v1.35.0.
  • Promoted the base image alpine from alpine:3.22.2 to alpine:3.23.3.
  • Karmada is now built with Golang ….×2
  • Helm Chart: Upgraded bitnami/common dependency in karmada operator chart from 1.17.1 to 2.31.4.
  • The metric work_sync_workload_duration_seconds no longer counts retriable Kubernetes 409 conflicts as errors, improving availability accuracy and reducing false alerts caused by conflict retry flapping.
  • karmada-controller-manager: Optimized the mechanism of create or update dependencies-distribute ResourceBinding.
  • Populated ResourceBinding and ClusterResourceBinding with WorkloadAffinity fields.
  • Introduced Tolerations and Affinity fields to the CommonSettings of Karmada API for supporting explicit tolerations and affinity for Karmada control plane components.
  • - Kubernetes dependencies have been updated to v1.34.2. ([#6999](https://github.com/karmada-io/karmada/pull/6999), @RainbowMango)
  • - The base image alpine has been promoted from alpine:3.22.2 to alpine:3.23.0. ([#7001](https://github.com/karmada-io/karmada/pull/7001), @dependabot)
  • - The base image alpine has been promoted from alpine:3.23.0 to alpine:3.23.2. ([#7034](https://github.com/karmada-io/karmada/pull/7034), @dependabot)
  • - helm: Upgraded bitnami/common dependency in karmada operator chart from 1.17.1 to 2.31.4. ([#6994](https://github.com/karmada-io/karmada/pull/6994), @zhzhuang-zju)

additions (19)

  • Karmada provides rich and powerful cluster-oriented scheduling capabilities. However, many applications have explicit inter-workload placement requirements for high availability, latency optimization, cost efficiency, and operational isolation. To address these deployment needs, this release introduces **workload affinity and anti-affinity**, a powerful scheduling feature that gives you fine-grained control over how workloads are placed across clusters.
  • - Introduced WorkloadAffinity to PropagationPolicy API to support affinity and anti-affinity workload scheduling. ([#7131](https://github.com/karmada-io/karmada/pull/7131), @mszacillo)
  • - Introduced WorkloadAffinityGroups to ResourceBinding/ClusterResourceBinding, which will be used to hold instantiated grouping results. ([#7144](https://github.com/karmada-io/karmada/pull/7144), @RainbowMango)
  • - karmada-operator: Introduced Tolerations and Affinity fields to the CommonSettings of Karmada API for supporting explicit tolerations and affinity for Karmada control plane components. ([#6480](https://github.com/karmada-io/karmada/pull/6480), @abhinav-1305)
  • - karmada-operator: Added support for configuring priority class and pod disruption budget config for Karmada operator deployment. ([#7015](https://github.com/karmada-io/karmada/pull/7015), @jabellard)
  • - karmada-resource-interpreter: Added RayService interpreter support. ([#7102](https://github.com/karmada-io/karmada/pull/7102), @seanlaii)
  • - karmada-scheduler: Added optional FilterPluginWithContext (FilterWithContext method) for filter plugins, and introduced a WorkloadAntiAffinity filter plugin gated by the WorkloadAffinity feature gate. ([#7177](https://github.com/karmada-io/karmada/pull/7177), @RainbowMango)
  • Enhanced the security posture of Karmada by integrating encryption-at-rest capabilities for the karmada-apiserver.
  • Helm Chart: Added helm index for 1.16 release.
  • Added optional FilterPluginWithContext (FilterWithContext method) for filter plugins
  • introduced a WorkloadAntiAffinity filter plugin gated by the WorkloadAffinity feature gate.
  • Implemented workload affinity and anti-affinity filter plugins to support co-locating workloads in the same AffinityGroup or isolating workloads in the same AntiAffinityGroup across clusters.
  • Introduced WorkloadAffinity to PropagationPolicy API to support affinity and anti-affinity workload scheduling.
  • Introduced WorkloadAffinityGroups to ResourceBinding/ClusterResourceBinding, which will be used to hold instantiated grouping results.
  • Introduced WorkloadAffinity feature gate, default to false.
  • Added support for configuring priority class and pod disruption budget config for Karmada operator deployment.×2
  • - Helm chart: Added helm index for 1.16 release. ([#6990](https://github.com/karmada-io/karmada/pull/6990), @zhzhuang-zju)
  • Introduced WorkloadAffinity feature gate

constraints (1)

  • - karmada-webhook: Added namespace validation for spec.resourceSelectors in PropagationPolicy and OverridePolicy to prevent unintended cross-namespace resource selection. ([#7176](https://github.com/karmada-io/karmada/pull/7176), @zhzhuang-zju)

defaults (1)

  • It is now promoted to **Beta** and **enabled by default**.
Karmada 스택에 추가

조치가 필요한 릴리스가 나왔을 때 주간 메일로 알려드립니다. 이번 릴리스의 브레이킹 체인지 같은 것들입니다.

스택에 추가