0

我有一个升级后的 helm hook 作业,它挂载 2 个 PV 声明并将数据从一个 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.退出作业,使其具有相同的含义..

4

1 回答 1

0

对此没有直接的解决方案。我必须启动另一个具有正确集群角色权限的容器,在该容器中初始化 kubectl 并使用它来检测上述情况。

于 2019-08-24T04:27:54.287 回答