Shell kubectl replace-f说它已经替换了一个资源,但实际上它没有';T
我正在编写一个shell脚本来创建和分解一个持久卷和一个持久卷声明。在拆卸时,我必须进入持久卷声明资源并删除终结器限制,使用Shell kubectl replace-f说它已经替换了一个资源,但实际上它没有';T,shell,kubernetes,sh,kubectl,Shell,Kubernetes,Sh,Kubectl,我正在编写一个shell脚本来创建和分解一个持久卷和一个持久卷声明。在拆卸时,我必须进入持久卷声明资源并删除终结器限制,使用 kubectl get pvc example-pvc -o yaml > hype.yaml && \ sed -i '/^[^#]*finalizer/c\' hype.yaml && \ sed -i '/^[^#]*pvc-protection/c\' hype.yaml && \ kubectl replac
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文件,但是,正如我所说的,没有终结器行。如果PVC连接到PV,那么它不会终止,除非PV也被终止。它将永远处于终止状态。更新PV,然后更新PVC。您只需将PV和PVC放在同一个yaml中,然后运行
kubectl apply-f
如果您的PVC连接到PV,则除非您的PV也被终止,否则它不会终止。它将永远处于终止状态。更新PV,然后更新PVC。您只需将PV和PVC放在同一个yaml中,然后运行kubectl apply-f
您还可以提供kubectl get pvc
和kubectl get pvc example pvc-o yaml
的输出吗?@Kamol Hasan:试图满足您的要求。我问这个问题是因为您正在替换example pvc
,但为什么它显示被替换的织物pvc
。对不起,我忘了更改所有输出。您是否尝试将--force
标志添加到kubectl replace
?您是否也可以提供kubectl get pvc
&kubectl get pvc示例pvc-o yaml
的输出?@Kamol Hasan:尝试满足您的要求。我之所以这样问,是因为您正在替换示例pvc
,但是为什么它显示的织物pvc
已被替换。对不起,我忘了更改所有输出。您是否尝试将--force
标志添加到kubectl replace
?不幸的是,情况正好相反,我。E首先必须删除pvc,然后才能删除pv。不管怎样,我的问题更多地涉及到相互冲突的现象,我。E确认替换,但显示不变。不幸的是,情况正好相反,i。E首先必须删除pvc,然后才能删除pv。不管怎样,我的问题更多地涉及到相互冲突的现象,我。E确认替换,但显示不变。