Anu*_*rag 3 openshift openshift-origin
Openshift v3.11.0+0cbc58b
我正在尝试以管理员用户身份从 openshift 中删除项目,但项目在终止状态下被击中。
我试过运行以下命令但没有用,
oc 删除项目测试
来自服务器的错误(冲突):无法在名称空间“测试”上完成操作:系统正在确保从此名称空间中删除所有内容。完成后,系统会自动清除此命名空间。
我已经检查了以前的帖子,但没有得到任何解决方案。谁能帮我解决这个问题。
Noa*_*nos 11
在oc delete 命名空间上出现此类错误时:
服务器错误(冲突):无法在命名空间上完成操作
您可以尝试使用针对 Openshift API的curl命令删除命名空间:
1.获取命名空间状态到 json 文件中:
oc get namespace $NS_TO_DELETE -o json > tmp_ns.json
Run Code Online (Sandbox Code Playgroud)
2.删除带有“kubernetes”的行(在“finalizers”下):
vi tmp_ns.json
Run Code Online (Sandbox Code Playgroud)
3.打开与集群的代理连接(作为后台进程)
oc proxy &
Run Code Online (Sandbox Code Playgroud)
4.使用 curl 将 json 内容推送到您的集群:
curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp_ns.json http://127.0.0.1:8001/api/v1/namespaces/$NS_TO_DELETE/finalize
Run Code Online (Sandbox Code Playgroud)
5.你的命名空间现在应该消失了:
oc get namespace $NS_TO_DELETE # namespaces not found
Run Code Online (Sandbox Code Playgroud)
6.切换到fgProxy的后台进程 ( ) 并停止它 (Ctrl+c),或者直接使用:
kill -9 %%
Run Code Online (Sandbox Code Playgroud)
注意:
如果您安装了jq,则可以通过以下方式运行步骤 1 和 2:oc get namespace $NS_TO_DELETE -o json | jq '.spec = {"finalizers":[]}' > tmp_ns.json
正如前面所回答的 - 您的命名空间包含一些用于终结器的资源。对于摆脱它们的强力方法(我假设这是删除命名空间的计划),您可以尝试:
oc api-resources --verbs=list --namespaced -o name | xargs -n 1 oc get --show-kind --ignore-not-found -n <your-namespace>
这将列出仍然存在的资源。命令可能需要一段时间才能为您提供资源,具体取决于集群中发生的情况。
然后oc edit <resource> -n <namespace>删除终结器部分。保存更改,并对列出的其余资源重复此操作。
但请谨慎使用。比我更有知识的人将能够告诉您这些资源实际上发生了什么。
命名空间包含一些需要终结器的对象。如果你不关心命名空间中的对象,你可以这样做:
oc delete namespace --now=true testing
从文档来看,这与--grace-period=1.
| 归档时间: |
|
| 查看次数: |
5226 次 |
| 最近记录: |