如何强制删除Kubernetes命名空间

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

命名空间是一种在多个用户和团队之间划分Kubernetes集群资源的方法。它们旨在用于许多用户分布在多个团队或项目中的环境中。对于用户数量很少的Kubernetes集群,您可能不需要创建或考虑名称空间。

您可能已经创建了一个Kubernetes集群 库贝姆 在Kubernetes安装指南中描述。在部署期间,我要删除命名空间,并在删除所有资源之前使用相同的名称重新创建资源。但是,名称空间是 终止状态。

[[email protected] ~]$ kubectl delete ns developer
namespace "developer" deleted

[[email protected] ~]$ kubectl get ns developer
NAME STATUS AGE
developer Terminating 1h

有多种解决此问题的方法。本文将向您展示如何解决此问题。 kubectl代理..

步骤1:编辑名称空间

首先,编辑结尾的名称空间, Kubernetes 终结器 所以 规格..终结器是为kubernetes资源设置的值,并且如果存在,则验证该资源在存在时不能被硬删除。这说明了如果未成功删除名称空间的原因,名称空间为何保持终止状态。

您可以使用JSON格式执行此操作。运行以下命令。

[[email protected] ~]$ kubectl get ns developer -o json  > tmp.json
[[email protected] ~]$ vim  tmp.json
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"name": "developer",
"spec": {
"finalizers": [
"kubernetes"
]
},
"status": {
"conditions": [
{
"lastTransitionTime": "2020-07-19T12:29:58Z",
"message": "Discovery failed for some groups, 1 failing: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request",
"reason": "DiscoveryFailed",
"status": "True",
"type": "NamespaceDeletionDiscoveryFailure"
},
{
"lastTransitionTime": "2020-07-19T12:30:02Z",
"message": "Failed to delete all resource types, 1 remaining: unexpected items still remain in namespace: developer for gvr: /v1, Resource=pods",
"reason": "ContentDeletionFailed",
"status": "True",
"type": "NamespaceDeletionContentFailure"
}
],
"phase": "Terminating"
}
}

所以 规格终结器 值如下:

[[email protected] ~]$ cat tmp.json
{
"kind": "Namespace",
"apiVersion": "v1",
"metadata": {
"name": "developer"
},
"spec": {
"finalizers": []
}
}

第2步:打开一个新终端

然后使用HTTP代理访问Kubernetes API。使用代理服务器,您可以使用以下方法探索kubernetes API: curlwget,或浏览器。您可以通过在新终端中运行以下命令来执行此操作。

[[email protected] ~]$ kubectl proxy
Starting to serve on 127.0.0.1:800

步骤3:套用编辑后的JSON档案

最后,使用 curl 应用没有问题的终结器的名称空间。

[[email protected] ~]$ curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/developer/finalize
{
"kind": "Namespace",
"apiVersion": "v1",
"metadata": {
"name": "developer",
"spec": {},
"status": {
"phase": "Terminating",
"conditions": [
{
"type": "NamespaceDeletionDiscoveryFailure",
"status": "True",
"lastTransitionTime": "2020-07-19T12:53:50Z",
"reason": "DiscoveryFailed",
"message": "Discovery failed for some groups, 1 failing: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request"
},
{
"type": "NamespaceDeletionGroupVersionParsingFailure",
"status": "False",
"lastTransitionTime": "2020-07-19T12:53:54Z",
"reason": "ParsedGroupVersions",
"message": "All legacy kube types successfully parsed"
},
{
"type": "NamespaceDeletionContentFailure",
"status": "False",
"lastTransitionTime": "2020-07-19T12:53:54Z",
"reason": "ContentDeleted",
"message": "All content successfully deleted"
}
]
}

名称空间已被删除。

[[email protected] ~]$ kubectl get ns developer
Error from server (NotFound): namespaces "developer" not found

查看以下课程,以帮助您学习Kubernetes。


Kubernetes管理员(CKA)认证和认证测试

★★★★★
(12755)

$ 14.88

$ 154.54

有现货

立即购买

如何强制删除Kubernetes命名空间Udemy.com


Kubernetes认证的具有Test的应用程序开发人员(CKAD)

Kubernetes认证的具有Test的应用程序开发人员(CKAD)

★★★★★
(6014)

$ 14.88

$ 148.81

有现货

立即购买

如何强制删除Kubernetes命名空间Udemy.com


学习DevOps:完整的Kubernetes课程

学习DevOps:完整的Kubernetes课程

★★★★☆
(10907)

$ 19.46

$ 45.78

有现货

立即购买

如何强制删除Kubernetes命名空间Udemy.com

其他Kubernetes文章:

使用kubeadm在Ubuntu上安装Kubernetes集群

使用Kompose将Docker Compose应用程序迁移到Kubernetes

使用NodePort安装Kubernetes仪表板

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

Sidebar