为什么OpenShift 3.10中的范围oc get all
(和oc delete all --all
)也不包括类型PersistentVolumeClaim
的组件?需要单独的oc get pvc
(和oc delete pvc --all
)。
是否有特殊原因需要特别对待这些物品? (显然,它们仅在某些方面是特殊的;例如,应用程序模板可以很正常地与其他组件一起创建它们。)
更新类型Secret
的组件也可能以类似的方式并且出于类似的原因而被特殊对待。我能想到的一个原因是这些组件的寿命通常可能比应用程序更长。
答案 0 :(得分:0)
我现在已经得出结论(也从收到的评论中得出),该行为是设计使然,目的是防止意外删除亲爱的持久性存储,该持久性存储的寿命可能大大超过单个(版本)应用程序。
因此,我现在对应用程序模板进行了一些重构。到目前为止,一个模板(YAML文件)负责创建所有组件(机密除外)。这导致了一种“不平衡”情况,需要一个oc new-app --template=app
来创建应用程序,而需要两个oc delete
(oc delete all --selector app=...
和oc delete pvc --selector app=..
)才能完全删除。将模板分为app.yaml
和yaml.yaml
后,新的“平衡”排列如下:
# create app (including its persistent storage)
oc new-app --template=app
oc new-app --template=pvc
# delete app (including its persistent storage)
oc delete all --selector app=...
oc delete pvc --selector app=...
我仍然将秘密排除在此范围之外,而是一次用oc create secret
创建秘密。