UiPath Documentation
automation-suite
2023.10
false
Automation Suite unter Linux – Installationsanleitung
Wichtig :
Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

Cron-Aufträge, die Hunderte von Aufträgen auslösen und die Knoten stark belasten

Bekanntes Problem in der Automation Suite, bei dem Cron-Aufträge ohne Gleichzeitigkeitsrichtlinie, die auf Forbidn festgelegt ist, Hunderte von gleichzeitigen Aufträgen während der Knotenwartung auslösen, was zu einer hohen Last führt.

Beschreibung​

Vor 2023.10.6, 2023.4.9 und 2022.10.14 wurde bei einigen Automation Suite-CRON-Aufträgen die Concurrency Policy nicht auf Verbieten festgelegt. Während der Wartung von Knoten kann dieses Problem Hunderte von Cron-Aufträgen gleichzeitig auslösen, was zu einer hohen Belastung des Knotens führt. Informationen zum Lösen dieses Problems finden Sie unter Lösung 1.

Das Problem kann auch zu Fehlern bei der Pod-Planung aufgrund eines Cilium-Fehlers führen: Key allocation attempt failed attempt=0 error="no more available IDs in configured space". Informationen zum Lösen dieses Problems finden Sie unter Lösung 2.

Lösung 1​

Ermitteln Sie, welche Cron-Aufträge die hohe Anzahl von Instanzen auslösen, und löschen Sie diese Cron-Aufträge.

CRONJOB_NAME="<cronjob-name>"
NAMESPACE="<namespace>"

# Delete all jobs associated with the CronJob
kubectl get jobs -n "$NAMESPACE" | grep "$CRONJOB_NAME" | awk '{print $1}' | xargs -I{} kubectl delete job -n "$NAMESPACE" {}
CRONJOB_NAME="<cronjob-name>"
NAMESPACE="<namespace>"

# Delete all jobs associated with the CronJob
kubectl get jobs -n "$NAMESPACE" | grep "$CRONJOB_NAME" | awk '{print $1}' | xargs -I{} kubectl delete job -n "$NAMESPACE" {}

Lösung 2​

Sie können die Fehler bei der Pod-Planung überprüfen, indem Sie diesen Befehl ausführen: kubectl get ciliumid | wc -l.

Wenn der Befehl mehr als 10.000 IDs zurückgibt, müssen Sie nicht verwendete Cilium-IDs bereinigen und Cilium-Bereitstellungen neu starten.

# Step 1: Get all CiliumIDs
ALL_CILIUMIDS=$(kubectl get ciliumid --no-headers -o custom-columns=":metadata.name")

# Step 2: Get active pod UIDs 
ACTIVE_POD_UIDS=$(kubectl get pods -A -o jsonpath='{.items[*].metadata.uid}') 

# Step 3: Compare and delete stale CiliumIDs 
for CID in $ALL_CILIUMIDS; do
 if [[ ! "$ACTIVE_POD_UIDS" =~ "$CID" ]]; then
  echo "Deleting stale CiliumID: $CID"
  kubectl delete ciliumid "$CID"
 fi
done

# Step 4: Restart cilium operator and daemonset
kubectl rollout restart deployment/cilium-operator -n kube-system
kubectl rollout restart daemonset/cilium -n kube-system
# Step 1: Get all CiliumIDs
ALL_CILIUMIDS=$(kubectl get ciliumid --no-headers -o custom-columns=":metadata.name")

# Step 2: Get active pod UIDs 
ACTIVE_POD_UIDS=$(kubectl get pods -A -o jsonpath='{.items[*].metadata.uid}') 

# Step 3: Compare and delete stale CiliumIDs 
for CID in $ALL_CILIUMIDS; do
 if [[ ! "$ACTIVE_POD_UIDS" =~ "$CID" ]]; then
  echo "Deleting stale CiliumID: $CID"
  kubectl delete ciliumid "$CID"
 fi
done

# Step 4: Restart cilium operator and daemonset
kubectl rollout restart deployment/cilium-operator -n kube-system
kubectl rollout restart daemonset/cilium -n kube-system
  • Beschreibung​
  • Lösung 1​
  • Lösung 2​

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben