mirror of https://github.com/openkruise/kruise.git
Fix: add some logs for WorkloadSpread managing existing pods (#1976)
Signed-off-by: AiRanthem <zhongtianyun.zty@alibaba-inc.com>
This commit is contained in:
parent
b7bdfffae0
commit
18ef834d14
|
@ -516,6 +516,7 @@ func (r *ReconcileWorkloadSpread) getSuitableSubsetNameForPod(ws *appsv1alpha1.W
|
||||||
if isNotMatchedWS(injectWS, ws) {
|
if isNotMatchedWS(injectWS, ws) {
|
||||||
// process the pods that were created before workloadSpread
|
// process the pods that were created before workloadSpread
|
||||||
matchedSubset, err := r.getAndUpdateSuitableSubsetName(ws, pod, subsetMissingReplicas)
|
matchedSubset, err := r.getAndUpdateSuitableSubsetName(ws, pod, subsetMissingReplicas)
|
||||||
|
klog.V(3).InfoS("no subset injected to pod, find a suitable one", "pod", klog.KObj(pod), "workloadSpread", klog.KObj(ws), "matchedSubset", matchedSubset)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
} else if matchedSubset == nil {
|
} else if matchedSubset == nil {
|
||||||
|
@ -553,6 +554,7 @@ func (r *ReconcileWorkloadSpread) getAndUpdateSuitableSubsetName(ws *appsv1alpha
|
||||||
klog.ErrorS(err, "Unexpected error occurred when matching pod with subset, please check requiredSelectorTerm field of subset in WorkloadSpread",
|
klog.ErrorS(err, "Unexpected error occurred when matching pod with subset, please check requiredSelectorTerm field of subset in WorkloadSpread",
|
||||||
"pod", klog.KObj(pod), "subsetName", subset.Name, "workloadSpread", klog.KObj(ws))
|
"pod", klog.KObj(pod), "subsetName", subset.Name, "workloadSpread", klog.KObj(ws))
|
||||||
}
|
}
|
||||||
|
klog.V(4).InfoS("preferred score for subset", "pod", klog.KObj(pod), "subsetName", subset.Name, "workloadSpread", klog.KObj(ws), "preferredScore", preferredScore, "node", node.Name)
|
||||||
// select the most favorite subsets for the pod by subset.PreferredNodeSelectorTerms
|
// select the most favorite subsets for the pod by subset.PreferredNodeSelectorTerms
|
||||||
if matched && preferredScore > maxPreferredScore {
|
if matched && preferredScore > maxPreferredScore {
|
||||||
favoriteSubset = subset
|
favoriteSubset = subset
|
||||||
|
@ -833,29 +835,33 @@ func (r *ReconcileWorkloadSpread) UpdateWorkloadSpreadStatus(ws *appsv1alpha1.Wo
|
||||||
clone.Status = *status
|
clone.Status = *status
|
||||||
|
|
||||||
err := r.writeWorkloadSpreadStatus(clone)
|
err := r.writeWorkloadSpreadStatus(clone)
|
||||||
if err == nil {
|
logStatusChanges(ws, status, err)
|
||||||
klog.V(3).InfoS(makeStatusChangedLog(ws, status), "workloadSpread", klog.KObj(ws))
|
|
||||||
}
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeStatusChangedLog(ws *appsv1alpha1.WorkloadSpread, status *appsv1alpha1.WorkloadSpreadStatus) string {
|
func logStatusChanges(ws *appsv1alpha1.WorkloadSpread, status *appsv1alpha1.WorkloadSpreadStatus, err error) {
|
||||||
|
if err != nil {
|
||||||
|
klog.ErrorS(err, "Failed to update WorkloadSpread status", "workloadSpread", klog.KObj(ws), "status", status)
|
||||||
|
return
|
||||||
|
}
|
||||||
oldSubsetStatuses := ws.Status.SubsetStatuses
|
oldSubsetStatuses := ws.Status.SubsetStatuses
|
||||||
oldSubsetStatusMap := make(map[string]*appsv1alpha1.WorkloadSpreadSubsetStatus, len(oldSubsetStatuses))
|
oldSubsetStatusMap := make(map[string]*appsv1alpha1.WorkloadSpreadSubsetStatus, len(oldSubsetStatuses))
|
||||||
for i := range oldSubsetStatuses {
|
for i := range oldSubsetStatuses {
|
||||||
oldSubsetStatusMap[oldSubsetStatuses[i].Name] = &oldSubsetStatuses[i]
|
oldSubsetStatusMap[oldSubsetStatuses[i].Name] = &oldSubsetStatuses[i]
|
||||||
}
|
}
|
||||||
|
|
||||||
log := fmt.Sprintf("WorkloadSpread (%s/%s) changes Status:", ws.Namespace, ws.Name)
|
var log string
|
||||||
|
|
||||||
for i, subset := range ws.Spec.Subsets {
|
for i, subset := range ws.Spec.Subsets {
|
||||||
oldStatus, ok := oldSubsetStatusMap[subset.Name]
|
oldStatus, ok := oldSubsetStatusMap[subset.Name]
|
||||||
if !ok {
|
if !ok {
|
||||||
continue
|
oldStatus = &appsv1alpha1.WorkloadSpreadSubsetStatus{
|
||||||
|
Name: subset.Name,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
newStatus := status.SubsetStatuses[i]
|
newStatus := status.SubsetStatuses[i]
|
||||||
|
|
||||||
log += fmt.Sprintf(" (<subset name: %s>", subset.Name)
|
log = fmt.Sprintf(" (<subset name: %s>", subset.Name)
|
||||||
|
|
||||||
if oldStatus.Replicas != newStatus.Replicas {
|
if oldStatus.Replicas != newStatus.Replicas {
|
||||||
log += fmt.Sprintf(" <Replicas: %d -> %d>", oldStatus.Replicas, newStatus.Replicas)
|
log += fmt.Sprintf(" <Replicas: %d -> %d>", oldStatus.Replicas, newStatus.Replicas)
|
||||||
|
@ -883,8 +889,7 @@ func makeStatusChangedLog(ws *appsv1alpha1.WorkloadSpread, status *appsv1alpha1.
|
||||||
|
|
||||||
log += ")"
|
log += ")"
|
||||||
}
|
}
|
||||||
|
klog.V(3).InfoS("WorkloadSpread status changed", "workloadSpread", klog.KObj(ws), "details", log)
|
||||||
return log
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ReconcileWorkloadSpread) writeWorkloadSpreadStatus(ws *appsv1alpha1.WorkloadSpread) error {
|
func (r *ReconcileWorkloadSpread) writeWorkloadSpreadStatus(ws *appsv1alpha1.WorkloadSpread) error {
|
||||||
|
|
Loading…
Reference in New Issue