Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openshift 终止时删除项目_Openshift_Openshift Origin - Fatal编程技术网

Openshift 终止时删除项目

Openshift 终止时删除项目,openshift,openshift-origin,Openshift,Openshift Origin,Openshift v3.11.0+0cbc58b 我试图以管理员用户的身份从openshift中删除项目,但项目在终止状态下被删除 我已尝试运行以下命令,但没有用 oc删除项目测试 服务器错误(冲突):无法对命名空间执行操作“测试”:系统正在确保从此命名空间中删除所有内容。完成后,系统将自动清除此命名空间 我已经检查了以前的帖子,但我没有得到任何解决方案。谁能帮我解决这个问题。名称空间包含一些需要终结器的对象。如果不关心命名空间中的对象,可以执行以下操作: oc delete namespac

Openshift v3.11.0+0cbc58b

我试图以管理员用户的身份从openshift中删除项目,但项目在终止状态下被删除

我已尝试运行以下命令,但没有用

oc删除项目测试

服务器错误(冲突):无法对命名空间执行操作“测试”:系统正在确保从此命名空间中删除所有内容。完成后,系统将自动清除此命名空间


我已经检查了以前的帖子,但我没有得到任何解决方案。谁能帮我解决这个问题。

名称空间包含一些需要终结器的对象。如果不关心命名空间中的对象,可以执行以下操作:

oc delete namespace--now=true测试


从文档中可以看出,这与在oc delete namespace上获得此类错误时的宽限期=1相同:

服务器出错(冲突):无法对命名空间执行操作

您可以尝试使用对Openshift API的curl命令删除名称空间:

1。将命名空间状态获取到json文件中:

oc get namespace $NS_TO_DELETE -o json > tmp_ns.json
2.删除带有“kubernetes”的行(在“终结器”下):

3.打开到群集的代理连接(作为后台进程)

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
5.您的命名空间现在应该消失了:

oc get namespace $NS_TO_DELETE # namespaces not found
6.切换到代理的后台进程(
fg
)并停止它(Ctrl+c),或直接使用:

kill -9 %%
注意:
如果您已经安装了,您可以通过以下方式运行步骤1和2:
oc get namespace$NS_TO_DELETE-o json | jq'.spec={“finalizers”:[]}>tmp_NS.json

,正如前面回答的那样-您的命名空间包含一些挂在终结器上的资源。要使用蛮力方法来消除它们(如果要删除名称空间,我假设这是一个计划),您可以尝试:

oc api资源--verbs=list--namespaced-o name | xargs-n 1 oc get--show kind--ignore not found-n

这将列出仍然挂起的资源。命令可能需要一段时间才能为您提供资源,这取决于集群中发生的情况

然后
oc编辑-n

che集群将被删除,项目或命名空间将被删除(不会停留在终止状态)

项目可能包含具有终结器的资源对象。您需要确定资源是什么,从对象中删除终结器以便删除它,然后删除项目。使用运算符时可能会发生这种情况,并且拥有资源的运算符在资源被删除之前已被删除。感谢@GrahamDumpleton,我将查看itI,有关此主题的更多信息,请参阅。终结器在那里是有特定原因的,您应该在那里搜索根本原因。不幸的是,这并不能解决问题,因为该命令会导致以下错误消息:
error from server(Conflict):无法对命名空间“NAMESPACE\u NAME”执行操作:系统正在确保从此命名空间中删除所有内容。完成后,系统将自动清除此命名空间。
非常感谢!这很有魅力!要是我能给你不止一个就好了upvote@meaningqo,很高兴它帮助了你。请注意,这只是一种解决方法,但重要的是要找出最初导致命名空间删除失败的原因。是。我们解决了这个问题,但是在我们已经标记了要删除的名称空间之后。问题是命名空间上仍然存在用于运算符的自定义资源,但由于该运算符已被删除,因此无法删除自定义资源,也无法重新安装该运算符。因此,删除终结器、删除名称空间、重新创建名称空间和删除剩余资源是可行的方法。再次谢谢你回答得很好,谢谢!
oc get namespace $NS_TO_DELETE # namespaces not found
kill -9 %%
oc patch checluster codeready-workspaces -p '{ "metadata": { "finalizers": null }}' --type merge -n=$NAMESAPCE-NAME