在终止中删除项目

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


Rua*_*ios 8

正如前面所回答的 - 您的命名空间包含一些用于终结器的资源。对于摆脱它们的强力方法(我假设这是删除命名空间的计划),您可以尝试:

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>删除终结器部分。保存更改,并对列出的其余资源重复此操作。

但请谨慎使用。比我更有知识的人将能够告诉您这些资源实际上发生了什么。


Chr*_*ton 0

命名空间包含一些需要终结器的对象。如果你不关心命名空间中的对象,你可以这样做:

oc delete namespace --now=true testing

从文档来看,这与--grace-period=1.

  • 不幸的是,这并不能解决问题,因为该命令会导致以下错误消息:`来自服务器的错误(冲突):无法在命名空间“NAMESPACE_NAME”上完成操作:系统正在确保从此命名空间中删除所有内容。完成后,该命名空间将自动被系统清除。 (2认同)