Karmada
v1.16.9Orchestration & ManagementACTION 3CHECK 1PLAN 2OTHER 105
複数コンポーネントを扱うスケジューリングや管理機能を強化し、インタープリター、API、可観測性の対応範囲も広げたメンテナンスリリースです。Go、Alpine などの依存関係を更新し、セキュリティ関連の修正も含みます。
要対応 (3)
securitymedium
github.の更新com/vektra/mockery github.を v3.5.5 に更新し、セキュリティ上の懸念に対応しました。対象のアドバイザリはcom/vektra/mockery GO-2025-3900です。security
alpineベースイメージの更新ベースイメージ
alpineをalpine:3.から23. 4 alpine:3.に更新し、セキュリティ上の懸念に対応しました。24. 1 security
alpineベースイメージの更新ベースイメージ
alpineをalpine:3.から23. 3 alpine:3.に更新し、セキュリティ上の懸念に対応しました。23. 4
影響確認 (1)
breaking外部 etcd フィールドの削除
外部 etcd の
CAData、CertData、KeyDataのいずれかを設定している場合に適用されます。karmada-operatorで、非推奨だった外部 etcd フィールドCAData、CertData、KeyDataを削除しました。
事前準備 (2)
deprecated
--etcd-init-imageフラグの非推奨化削除時期は未定initコマンドの--etcd-init-imageフラグを使用している場合に適用されます。karmadactlのinitコマンドにある--etcd-init-imageフラグは、使用されなくなったため非推奨になりました。今後のリリースで削除される予定です。breakingメンバークラスタ用メトリクスラベルの変更1.18で削除予定
Prometheus メトリクスのラベル
clusterまたはcluster_nameを使用している場合に適用されます。メンバークラスタを示す Prometheus メトリクスラベル
clusterとcluster_nameは非推奨になり、1.リリースで削除される予定です。今後は18 member_clusterというラベル名を使用します。
その他の記録済み変更 105 件すべてfixes 43 · additions 32 · value changes 18 · constraints 12
fixes (43)
- -
karmada-controller-manager: Fixed an issue where the taint-manager eviction queue would enqueue bindings with indefinite taint tolerations. ([#7775](https://github.com/karmada-io/karmada/pull/7775), @karmada-bot) - -
karmada-controller-manager: Fixed an issue whereCluster.could remain stale after an associatedstatus. remedyActions Remedyresource was removed. ([#7790](https://github.com/karmada-io/karmada/pull/7790), @karmada-bot) - -
helm chart: Fixed TLS certificate SAN mismatch when deploying to a custom namespace by adding systemNamespace SANs to certs.auto.hosts. ([#7686](https://github.com/karmada-io/karmada/pull/7686), @karmada-bot) - -
karmada-search: Fixed the issue that watch connect cannot reflect resources from recovered clusters immediately. ([#7522](https://github.com/karmada-io/karmada/pull/7522), @Ady0333) - -
karmada-scheduler: Fixed the issue when cluster resources are insufficient, multiple template resources can still be scheduled. ([#7580](https://github.com/karmada-io/karmada/pull/7580), @jabellard) - -
karmada-controller-manager: Fixed the issue that a transientClusterClientSetFuncfailure (e.g. missingSecretRefduring credential rotation) would immediately set the clusterReady=Falsewithout respectingClusterFailureThreshold, potentially triggering unnecessary workload failover. ([#7578](https://github.com/karmada-io/karmada/pull/7578), @driegel1) - -
karmada-operator: Fixed init reconciliation failure by replacing non-idempotent secret creation with an idempotent approach. ([#7405](https://github.com/karmada-io/karmada/pull/7405), @anr) - -
karmada-scheduler: Fixed an issue where the schedule success event was missing cluster information when scheduling withClusterAffinities. ([#7419](https://github.com/karmada-io/karmada/pull/7419), @cotishq) - -
karmada-scheduler: Fixed incorrect error type propagation that caused bindings with insufficient cluster replicas to be misrouted tobackoffQinstead ofunschedulableBindings. ([#7354](https://github.com/karmada-io/karmada/pull/7354), @SujoyDutta) - - Fixed the issue that
Jobcompletions were assigned to the wrong replicas for each cluster. ([#7401](https://github.com/karmada-io/karmada/pull/7401), @Ady0333) - -
karmada-agent: Fixed the issue where certificate rotation CSRs were never auto-approved due to a SignerName mismatch betweencert_rotation_controllerandagent_csr_approving. ([#7310](https://github.com/karmada-io/karmada/pull/7310), @Denyme24) - -
karmada-chart: Fixed unrendered{{ ca_crt }}during upgrades. ([#7330](https://github.com/karmada-io/karmada/pull/7330), @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. ([#7307](https://github.com/karmada-io/karmada/pull/7307), @Ady0333) - -
karmada-controller-manager: Fixed the issue where the job status aggregator could enter an error loop due to a race condition when setting the initialstartTime. ([#7158](https://github.com/karmada-io/karmada/pull/7158), @rohan-019) - -
karmada-controller-manager: Fixed CronFederatedHPA scale-up from zero failure when the replicas field is missing. ([#7212](https://github.com/karmada-io/karmada/pull/7212), @zhengjr9) - -
karmada-controller-manager: Fixed an issue where a per-taskGracePeriodSecondsvalue could leak to subsequent graceful eviction tasks, causing premature or delayed evictions. ([#7187](https://github.com/karmada-io/karmada/pull/7187), @Ady0333) - -
karmada-controller-manager: Fixed an issue where dependency updates could overwrite other controller annotations during retry conflicts. ([#7216](https://github.com/karmada-io/karmada/pull/7216), @Ady0333) - -
karmada-scheduler: Fixed a scheduler panic caused by a divide-by-zero error when calculating spread constraints with no valid clusters. ([#7234](https://github.com/karmada-io/karmada/pull/7234), @XiShanYongYe-Chang) - -
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. ([#7231](https://github.com/karmada-io/karmada/pull/7231), @zhzhuang-zju) - -
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. ([#7238](https://github.com/karmada-io/karmada/pull/7238), @zhzhuang-zju) - -
karmada-controller-manager: Fixed an issue where policy deletion could be blocked if a resource selector targeted a non-existent resource. ([#7083](https://github.com/karmada-io/karmada/pull/7083), @FAUST-BENCHOU) - -
karmada-scheduler: Fixed bug preventing multi-component workloads from being rescheduled during cluster failover events. ([#7130](https://github.com/karmada-io/karmada/pull/7130), @mszacillo) - -
karmada-webhook: Fixed an issue where thecondition.was not set toreason QuotaExceededwhen FederatedResourceQuota is exceeded. ([#7098](https://github.com/karmada-io/karmada/pull/7098), @kajal-jotwani) - -
karmadactl: Fixed the messy auto-completion suggestions for commands like 'get' and 'apply'. ([#7025](https://github.com/karmada-io/karmada/pull/7025), @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. ([#7028](https://github.com/karmada-io/karmada/pull/7028), @XiShanYongYe-Chang) - -
karmada-controller-manager: Fixed the issue thatHelmReleasedid not defineobservedGenerationvariable in thestatusAggregationoperation. ([#7059](https://github.com/karmada-io/karmada/pull/7059), @FAUST-BENCHOU) karmada-controller-manager: Fixed the issue thatrbSpec.is not updated when the template is updated.Components karmada-controller-manager: Added a default timeout (32s) for the member cluster client to avoid the controller hanging when the member cluster does not respond.karmada-controller-manager: Fixed the Job status cannot be aggregated issue due to the missingJobSuccessCriteriaMetcondition when using kube-apiserver v1.32+ as Karmada API server.karmada-controller-manager: Fixed the issue that attached resource changes were not synchronized to the cluster in the dependencies distributor.karmada-metrics-adapter: Fixed a panic when querying node metrics by name caused by using the wrong GroupVersionResource (PodsGVR instead of NodesGVR) when creating a lister.karmada-operator: Fixed the issue that CRDs cannot be updated during upgrades of the Karmada instance.karmada-scheduler: Fixed the issue where increasing the total number of replicas can cause some clusters to receive fewer replicas under the StaticWeight strategy by introducing the Webster algorithm.karmada-webhook: Fixed the issue that resourcebinding validating webhook may panic when ReplicaRequirements of a Component in rbSpec.Components is nil.karmadactl: Fixed the issue that theregistercommand still uses the cluster-info endpoint when registering a pull-mode cluster, even if the user provides the API server endpoint.ResourceInterpreter: Fixed the issue that when an object API field name contains dots or colons, it would cause the resource interpreter to fail.- -
karmada-metrics-adapter: Fixed a panic when querying node metrics by name caused by using the wrong GroupVersionResource (PodsGVR instead of NodesGVR) when creating a lister. - -
karmadactl: Fixed the issue that theregistercommand still uses the cluster-info endpoint when registering a pull-mode cluster, even if the user provides the API server endpoint. - -
karmada-scheduler: Fixed the issue where increasing the total number of replicas can cause some clusters to receive fewer replicas under the StaticWeight strategy by introducing the Webster algorithm. - -
karmada-controller-manager: Fixed the issue thatrbSpec.is not updated when the template is updated.Components - -
ResourceInterpreter: Fixed the issue that when an object API field name contains dots or colons, it would cause the resource interpreter to fail. - -
karmada-webhook: Fixed the issue that resourcebinding validating webhook may panic when ReplicaRequirements of a Component in rbSpec.Components is nil. - -
karmada-operator: Fixed the issue that CRDs can not be updated during upgrades of the Karmada instance.
additions (32)
- In Karmada v1.16.0, we introduce **multi-component scheduling**, a new capability that enables the **complete and unified placement of multi-component workloads**—those composed of multiple interrelated components (e.g., jobManager and taskManagers of FlinkDeployment)—**into a single member cluster with sufficient resources**.
- - Estimate how many full sets of components can fit into a member cluster based on **ResourceQuota** limits.
- - Predict schedulability using **actual node resource availability** across clusters. Karmada v1.16.0 ships with built-in **resource interpreters** for the following multi-component workload types:
- This release introduces an eviction queue with rate limiting capabilities for the Karmada taint manager.
- - **Configurable Fixed Rate Limiting**: Configure the eviction rate per second through the
--eviction-ratecommand-line flag. - - **Comprehensive Metrics Support**: Provides metrics for queue depth, resource kind, processing latency, and success/failure rates for monitoring and troubleshooting.
- Introduced
Componentsfield toResourceInterpreterContextin theResourceInterpreterResponseto support interpreting components for webhook interpreter. - Introduced a
PodDisruptionBudgetfield to theCommonSettingsofKarmadaAPI for supporting PodDisruptionBudgets (PDBs) for Karmada control plane components. karmadactl: Theinitcommand now supports customizing Karmada component command line flags.karmadactl: Theinitcommand now supports customizing Karmada component command line flags via the configuration file.karmada-controller-manager: Introduced built-in interpreter for VolcanoJob.karmada-controller-manager: Introduced a built-in interpreter for Kubeflow Notebooks.karmada-controller-manager: Introduced built-in interpreter for SparkApplication.karmada-controller-manager: Introduced built-in interpreter for PyTorchJob.karmada-controller-manager: Introduced built-in resource interpreter for Kubernetes ReplicaSet workloads.karmada-controller-manager: Introduced built-in interpreter for MPIJob.karmada-controller-manager: Introduced--resource-eviction-rateflag to specify the eviction rate during cluster failover.karmada-scheduler: ImplementedMaxAvailableComponentSetsinterface for general estimator based on resource summary.karmada-scheduler: Enabled the capability for multiple component estimation in the scheduler. The feature is gated behind MultiplePodTemplatesScheduling.karmada-scheduler-estimator: Introduced MaxAvailableComponentSetsRequest & MaxAvailableComponentSetsResponse for component scheduling.karmada-scheduler-estimator: Added plugins in estimator for component scheduling.karmada-scheduler-estimator: AddedResourceQuotaplugin for multi-component scheduling.karmada-scheduler-estimator: Implemented the noderesource plugin for multi-component scheduling estimation.karmada-webhook: Enabled federated resource quota calculation for multi-component scheduling.ResourceInterpreter: EnabledGetComponentsinterpreter operation through Webhook Interpreter.ResourceInterpreter: Added maxAvailableComponentSets to estimator interface.karmada-controller-manager: Added a new Warning eventDependencyPolicyConflictto surface when dependency policies have conflicts.karmada-controller-manager: Added new metrics for the failover eviction queue to enhance observability.- -
karmada-scheduler-estimator: Introduce MaxAvailableComponentSetsRequest & MaxAvailableComponentSetsResponse for component scheduling. - -
karmada-scheduler: ImplementedMaxAvailableComponentSetsinterface for general estimator based on resource summary. - -
ResourceInterpreter: Adding maxAvailableComponentSets to estimator interface. - -
Helm chart: Added helm index for 1.15 release.
value changes (18)
- - The base image
alpinehas now been promoted fromalpine:3.to23. 2 alpine:3.. ([#7162](https://github.com/karmada-io/karmada/pull/7162), @dependabot)23. 3 - - The base image
alpinehas been promoted fromalpine:3.to22. 2 alpine:3.. ([#7004](https://github.com/karmada-io/karmada/pull/7004), @dependabot)23. 0 - - The base image
alpinehas been promoted fromalpine:3.to23. 0 alpine:3.. ([#7037](https://github.com/karmada-io/karmada/pull/7037), @dependabot)23. 2 - - **Monotonic replica assignment**: Increasing the total replica count will never cause any cluster to lose replicas, ensuring consistent and intuitive behavior.
- - **Fair handling of remainder replicas**: When distributing replicas among clusters with equal weights, priority is given to the cluster with fewer current replicas. This "smaller-first" approach promotes balanced deployment and better satisfies high availability (HA) requirements.
karmadactl: Theinitcommand's defaultkube-apiserverandkube-controller-managerimages have been updated from v1.31.3 to v1.34.1. And the defaultetcdimage has been updated from 3.5.16-0 to 3.6.0-0.karmada-controller-manager: Computed effective field values for attached ResourceBindings when referenced by multiple ResourceBindings.karmada-scheduler: Migrated dynamic weight assignment to use the Webster algorithm.karmada-scheduler-estimator: Implemented maxAvailableComponentSets for the accurate estimator.- Karmada is now built with Golang v1.24.10.
- Kubernetes dependencies have been updated to v1.34.1.
- Updated
sigs.fromk8s. io/controller-runtime v0.to21. 0 v0..22. 4 - The base image
alpinehas been promoted from 3.22.1 to 3.22.2. karmada-controller-manager: After enabling theControllerPriorityQueuefeature gate, the asyncWorker uses a priority queue based implementation, which affects the processing order of items in the resource detector and causes the monitoring metricworkqueue_depthto be split into multiple series.- - Karmada is now built with Golang v1.24.9.
- - The base image
alpinenow has been promoted from 3.22.1 to 3.22.2. - - Introduced
Componentsfield toResourceInterpreterContextin theResourceInterpreterResponseto support interpreting components for webhook interpreter. - we introduce the
Webster method, also known as theSainte-Laguëmethod, to improve replica assignment during cross-cluster scheduling.
constraints (12)
- -
FlinkDeployment(flink.)apache. org/v1beta1/FlinkDeployment - -
SparkApplication(sparkoperator.)k8s. io/v1beta2/SparkApplication - -
Volcano Job(batch.)volcano. sh/v1alpha1/Job - -
MPIJob(kubeflow.)org/v2beta1/MPIJob - -
RayCluster(ray.)io/v1/RayCluster - -
RayJob(ray.)io/v1/RayJob - -
TFJob(kubeflow.)org/v1/TFJob - **Note**: Multi-component scheduling is **disabled by default**. To use it, enable the
MultiplePodTemplatesScheduling> feature gate in your Karmada control plane components. - For controllers not built on controller-runtime, such as the detector controller, we extend this capability in release-1.16 by enabling the priority-queue functionality for all controllers that use async workers.
karmada-controller-manager: TheControllerPriorityQueuefeature gate now applies to all controllers, including async workers. Enable it with--feature-gates=ControllerPriorityQueue=true.- -
karmadactl: Theinitcommand now supports customizing Karmada component command line flags. - -
ResourceInterpreter: EnableGetComponentsinterpreter operation through Webhook Interpreter.
対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチと破壊的変更も、その一例です。