我正在编写一个shell脚本来创建和拆除持久卷和持久卷声明。拆除时,我必须进入持久的批量声明资源,并使用
删除终结器限制kubectl get pvc example-pvc -o yaml > hype.yaml && \
sed -i '/^[^#]*finalizer/c\' hype.yaml && \
sed -i '/^[^#]*pvc-protection/c\' hype.yaml && \
kubectl replace pvc example-pvc -o yaml -f hype.yaml.
hype.yaml
文件不再具有限制,
persistentvolumeclaim/example-pvc replaced
显示了,但是资源本身(如通过kubectl edit pvc example-pvc
指示的未更改,因此拒绝拆除持久卷声明。
有什么想法,为什么要解决?
应@Kamol Hasan的要求:
$kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
example-pvc Terminating example-pv 10Gi RWX
第二个请求的命令会产生一个非常长的.yaml文件,但是,正如我所说的,终结器行不存在。
答案 0 :(得分:0)
如果您的PVC连接到PV,则除非PV也被终止,否则它不会终止。它将永远处于终止状态。更新PV,然后更新PVC。您只需将PV和PVC放在相同的Yaml中,然后运行kubectl apply -f
。