Kubernetes Garbage Collection: Mit Terminating Pods aufräumen

Kubernetes Life-Hack - Schluss mit "Pod stuck in terminating state". Egal ob Volume Mounts fehlschlagen oder neue Replicas hängen bleiben - ein einfacher Kubernetes CronJob reicht, um mit endlos terminierenden Pods aufzuräumen.

Meta: Fabian Peter · 17.08.2023 · ⏳ 1 Minute · Alle Blogs →
Tagskubernetes

Mit ayedo ist der Betrieb Ihrer Apps in Kubernetes ein Kinderspiel. Hin und wieder reichen die Boardmittel allerdings nicht aus, um den reibungslosen Betrieb Ihrer Anwendungen sicherzustellen. Einen nützlichen kleinen Life-Hack im Zusammenhang mit Terminating Pods möchten wir Ihnen in diesem Artikel vorstellen. Noch kein Kubernetes Cluster?

Mit ayedo Fleet können Sie Kubernetes 30 Tage kostenlos testen, ohne die operativen Kopfschmerzen. Probieren Sie’s aus.

Kubernetes Garbage Collection

Der CronJob:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: garbage-collector-cronjob
  namespace: kube-system
spec:
  schedule: '*/1 * * * *'
  concurrencyPolicy: Forbid
  suspend: false
  jobTemplate:
    metadata:
      creationTimestamp: null
    spec:
      parallelism: 1
      completions: 1
      backoffLimit: 0
      template:
        metadata:
          creationTimestamp: null
        spec:
          volumes:
            - name: scripts
              configMap:
                name: garbage-collector-cm
                defaultMode: 320
          containers:
            - name: garbage-collector
              image: alpine/k8s:1.25.12
              command:
                - /scripts/remove-evicted-pods-all-ns.sh
              resources: {}
              volumeMounts:
                - name: scripts
                  mountPath: /scripts
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
              imagePullPolicy: IfNotPresent
          restartPolicy: Never
          terminationGracePeriodSeconds: 30
          dnsPolicy: ClusterFirst
          securityContext: {}
          schedulerName: default-scheduler

Und die dazugehörige ConfigMap:

#!/bin/bash
namespace=""
node=$(kubectl get node | grep "worker" | grep "NotReady" | awk '{print $1}')
for pod in $(kubectl get pods -A -o=JSON --field-selector spec.nodeName=${node} | jq -r '.items[] |
 select(.metadata.namespace | startswith("${namespace}")) | .metadata.name') ; do
  namespace=$(kubectl get pods -A -o=JSON --field-selector metadata.name=${pod}| jq -r ' .items[] .metadata.namespace')
  echo "Killing pod ${namespace}/${pod}"
  kubectl delete pod -n ${namespace} --force ${pod}
done
ayedo Alien Kubernetes Hat

Hosten Sie Ihre Apps in der ayedo Cloud

Profitieren Sie von skalierbarem App Hosting in Kubernetes, hochverfügbarem Ingress Loadbalancing und erstklassigem Support durch unser Plattform Team. Mit der ayedo Cloud können Sie sich wieder auf das konzentrieren, was Sie am besten können: Software entwickeln.

Jetzt ausprobieren →

Ähnliche Inhalte

Alle Blogs →



Fabian Peter · 27.03.2024 · ⏳ 10 Minuten

Kubernetes für IoT und IIoT

Kubernetes hat sich als eine Schlüsseltechnologie für die Verwaltung und den Betrieb von containerisierten Anwendungen etabliert, einschließlich solcher, die in den Bereichen Internet der Dinge (IoT) …

Lesen →

Fabian Peter · 27.03.2024 · ⏳ 6 Minuten

Kubernetes für App Entwickler

Kubernetes kann einer Software- oder Digitalisierungs-Agentur auf verschiedene Weise helfen, zusätzliche Umsätze mit dem hochverfügbaren Betrieb von Software zu erwirtschaften: Hochverfügbarkeit: …

Lesen →

Fabian Peter · 27.03.2024 · ⏳ 4 Minuten

Kubernetes für KI

Kubernetes spielt eine entscheidende Rolle bei der Unterstützung von Open Source KI-Anwendungen, indem es eine robuste, skalierbare und flexible Plattform für das Deployment, die Verwaltung und die …

Lesen →

Fabian Peter · 27.03.2024 · ⏳ 4 Minuten

Laravel für SaaS Apps

Laravel ist eines der beliebtesten PHP-Frameworks und bietet eine Reihe von Funktionen, die es zu einer ausgezeichneten Wahl für die Entwicklung von Software-as-a-Service (SaaS) Produkten machen. Hier …

Lesen →

Fabian Peter · 27.03.2024 · ⏳ 5 Minuten

PHP in Kubernetes

Durch die Nutzung von Kubernetes können Entwickler und Betriebsteams die Herausforderungen traditioneller Hosting-Umgebungen überwinden und ihre PHP-Anwendungen effizienter, zuverlässiger und …

Lesen →


Interessiert an weiteren Inhalten? Hier gehts zu allen Blogs →

Kontaktieren Sie uns

Unsere Container-Experten beraten Sie gerne und individuell.

Wir antworten in der Regel innerhalb weniger Stunden auf Ihre Nachricht.