Merge pull request #8611 from Lyndon-Li/distribute-dd-evenly

Distribute dd evenly across nodes
pull/8621/head
lyndon-li 2025-01-14 17:21:45 +08:00 committed by GitHub
commit 1d3af6d160
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 23 additions and 4 deletions

View File

@ -0,0 +1 @@
Fix issue #8242, distribute dd evenly across nodes

View File

@ -400,6 +400,11 @@ func (e *genericRestoreExposer) createRestorePod(ctx context.Context, ownerObjec
}}
volumes = append(volumes, podInfo.volumes...)
if label == nil {
label = make(map[string]string)
}
label[podGroupLabel] = podGroupGenericRestore
volumeMode := corev1.PersistentVolumeFilesystem
if targetPVC.Spec.VolumeMode != nil {
volumeMode = *targetPVC.Spec.VolumeMode
@ -462,6 +467,18 @@ func (e *genericRestoreExposer) createRestorePod(ctx context.Context, ownerObjec
Labels: label,
},
Spec: corev1.PodSpec{
TopologySpreadConstraints: []corev1.TopologySpreadConstraint{
{
MaxSkew: 1,
TopologyKey: "kubernetes.io/hostname",
WhenUnsatisfiable: corev1.ScheduleAnyway,
LabelSelector: &metav1.LabelSelector{
MatchLabels: map[string]string{
podGroupLabel: podGroupGenericRestore,
},
},
},
},
NodeSelector: nodeSelector,
OS: &podOS,
Containers: []corev1.Container{

View File

@ -21,10 +21,11 @@ import (
)
const (
AccessModeFileSystem = "by-file-system"
AccessModeBlock = "by-block-device"
podGroupLabel = "velero.io/exposer-pod-group"
podGroupSnapshot = "snapshot-exposer"
AccessModeFileSystem = "by-file-system"
AccessModeBlock = "by-block-device"
podGroupLabel = "velero.io/exposer-pod-group"
podGroupSnapshot = "snapshot-exposer"
podGroupGenericRestore = "generic-restore-exposer"
)
// ExposeResult defines the result of expose.