JavaEE鸿蒙应用开发HTML&JS+前端Python+大数据开发人工智能开发AI+设计软件测试新媒体+短视频直播运营产品经理集成电路应用开发(含嵌入式)Linux云计算+运维开发C/C++拍摄剪辑+短视频制作PMP项目管理认证电商运营Go语言与区块链大数据PHP工程师Android+物联网iOS.NET

5分钟6步强制删除kubernetes NameSpace小技巧

来源:黑马程序员

浏览6138人

2020.04.03


在使用kubernetes过程中,我们经常会遇到无法删除NameSpace的情况,但是如果一一去删除NameSpace中资源比较麻烦。下面我们给大家介绍强制删除NameSpace的方法。

一、查看已存在的NameSpace

[root@master1 ~]# kubectl get ns

NAME              STATUS        AGE

default           Active        56d

ingress-nginx     Active        49d

istio-system      Terminating   37d

kube-node-lease   Active        56d

kube-public       Active        56d

kube-system       Active        56d


二、获取需要强制删除的NameSpace信息

[root@master1 ~]# kubectl get namespace istio-system -o json > istio-system.json

[root@master1 ~]# cat istio-system.json

{

    "apiVersion": "v1",

    "kind": "Namespace",

    "metadata": {

        "annotations": {

            "kubectl.kubernetes.io/last-applied-configuration": "{"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"labels":{"istio-injection":"disabled","istio-operator-managed":"Reconcile","operator.istio.io/component":"Base","operator.istio.io/managed":"Reconcile","operator.istio.io/version":"1.4.3"},"name":"istio-system"}}n"

        },

        "creationTimestamp": "2020-01-27T15:26:48Z",

        "deletionTimestamp": "2020-02-15T01:17:05Z",

        "labels": {

            "istio-injection": "disabled",

            "istio-operator-managed": "Reconcile",

            "operator.istio.io/component": "Base",

            "operator.istio.io/managed": "Reconcile",

            "operator.istio.io/version": "1.4.3"

        },

        "name": "istio-system",

        "resourceVersion": "6024170",

        "selfLink": "/api/v1/namespaces/istio-system",

        "uid": "d8bdc915-ee6f-43cd-ac37-5e353218095f"

    },

    "spec": {

        "finalizers": [

            "kubernetes"

        ]

    },

    "status": {

        "conditions": [

            {

                "lastTransitionTime": "2020-02-15T01:17:10Z",

                "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-02-15T01:17:13Z",

                "message": "All legacy kube types successfully parsed",

                "reason": "ParsedGroupVersions",

                "status": "False",

                "type": "NamespaceDeletionGroupVersion


三、修改已获取的NameSpace信息文件

1585900513796991.png

[root@master1 ~]# cat istio-system.json

{

    "apiVersion": "v1",

    "kind": "Namespace",

    "metadata": {

        "annotations": {

            "kubectl.kubernetes.io/last-applied-configuration": "{"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"labels":{"istio-injection":"disabled","istio-operator-managed":"Reconcile","operator.istio.io/component":"Base","operator.istio.io/managed":"Reconcile","operator.istio.io/version":"1.4.3"},"name":"istio-system"}}n"

        },

        "creationTimestamp": "2020-01-27T15:26:48Z",

        "deletionTimestamp": "2020-02-15T01:17:05Z",

        "labels": {

            "istio-injection": "disabled",

            "istio-operator-managed": "Reconcile",

            "operator.istio.io/component": "Base",

            "operator.istio.io/managed": "Reconcile",

            "operator.istio.io/version": "1.4.3"

        },

        "name": "istio-system",

        "resourceVersion": "6024170",

        "selfLink": "/api/v1/namespaces/istio-system",

        "uid": "d8bdc915-ee6f-43cd-ac37-5e353218095f"

    },

    "spec": {

    },

    "status": {

        "conditions": [

            {

                "lastTransitionTime": "2020-02-15T01:17:10Z",

                "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-02-15T01:17:13Z",

                "message": "All legacy kube types successfully parsed",

                "reason": "ParsedGroupVersions",

                "status": "False",

                "type": "NamespaceDeletionGroupVersionParsingFailure"

            },

            {

                "lastTransitionTime": "2020-02-15T01:17:13Z",

                "message": "All content successfully del

 

四、运行kube-proxy

[root@master1 ~]# kubectl proxy

Starting to serve on 127.0.0.1:8001


五、通过API执行强制删除操作

[root@master1 ~]# curl -k -H "Content-Type: application/json" -X PUT --data-binary @istio-system.json http://127.0.0.1:8001/api/v1/namespaces/istio-system/finalize


六、强制删除确认

[root@master1 ~]# kubectl get ns

NAME              STATUS        AGE

default           Active        56d

ingress-nginx     Active        49d

kube-node-lease   Active        56d

kube-public       Active        56d

kube-system       Active        56d


相关阅读