如果找不到PVC声明,如何退出头盔挂钩?

时间:2019-07-05 16:15:49

标签: kubernetes-helm kubernetes-jobs

我有一个升级后的头盔挂接作业,可挂载2个PV索赔并将数据从一个PVC复制到另一个PVC。 但是,在某些情况下,可能不会存在特定的PVC。当我运行此钩子时,将生成该作业,但即使发现PVC丢失,该作业也处于“挂起”状态。有什么方法可以将该作业标记为失败并继续进行?

apiVersion: batch/v1
kind: Job
metadata:
  name: pvc-rsync
spec:
  template:         
    metadata:
        name: rsync
    spec:
      containers:
      - name:pvc-rsync
        image: mrsync:latest
        imagePullPolicy: Always
        volumeMounts:
        - name: source
          mountPath: /srcd
        - name: destination
          mountPath: /dest
      restartPolicy: OnFailure 
      volumes:
      - name: source
        persistentVolumeClaim:
          claimName: foo
      - name: destination
        persistentVolumeClaim:
          claimName: blah

describe命令显示

Events:
  Type     Reason            Age               From               Message
  ----     ------            ----              ----               -------
  Warning  FailedScheduling  3m (x25 over 4m)  default-scheduler  persistentvolumeclaim "foo" not found

我想做两件事之一: 1.动态检测不存在PVC 2.退出作业,使其具有相同的含义。

1 个答案:

答案 0 :(得分:0)

没有直接的解决方案。我必须调出另一个具有正确群集角色权限的容器,在该容器中初始化kubectl并使用它来检测以上内容。