Задание kubernetes cron, которое должно выполняться каждые 10 минут и удалять стручки, находящиеся в состоянии «Завершение» во всех пространствах имен в кластере? - PullRequest
0 голосов
/ 14 марта 2019

задание kubernetes cron, которое должно выполняться каждые 10 минут и удалять стручки которые находятся в состоянии «Завершение» во всех пространствах имен в кластере? пожалуйста помогите мне .... борюсь со сценарием оболочки bash one liner

  apiVersion: batch/v1
  kind: Job
  metadata:
  name: process-item-$ITEM
  labels:
  jobgroup: jobexample
  spec:
  template:
  metadata:
  name: jobexample
  labels:
    jobgroup: jobexample
spec:
  containers:
  - name: c
    image: busybox
    command: ["sh", "-c", "echo Processing item $ITEM && sleep 5"]
  restartPolicy: Never

1 Ответ

1 голос
/ 14 марта 2019

Список всех завершающих модулей во всем пространстве имен в формате {namespace}. {Name}

kubectl get pods --field-selector=status.phase=Terminating --output=jsonpath='{range .items[*]}{.metadata.namespace}{"."}{.metadata.name}{"\n"}{end}' --all-namespaces=true

Учитывая имя модуля и его пространство имен, его можно принудительно удалить с помощью

kubectl delete pods <pod> --grace-period=0 --force --ns=<namespace>

В одну строку

for i in `kubectl get pods --field-selector=status.phase=Terminating --output=jsonpath='{range .items[*]}{.metadata.namespace}{"."}{.metadata.name}{"\n"}{end}' --all-namespaces=true`; do kubectl delete pods ${i##*.} --grace-period=0 --force --ns=${i%%.*}; done
...