如何删除所有资源,包括服务,部署,pod,用于特定部署的副本集(不包括kubernetes中的特定资源)

时间:2020-05-20 14:50:32

标签: kubernetes

查找任何可以帮助我删除部署中所有相关资源(不包括特定资源)的kubernetes命令。

示例:-

下面是我的两个部署echo1&echo2,现在我想删除属于echo1的所有相关资源,并将其删除,而echo2将保持原样。

NAME                         READY   STATUS    RESTARTS   AGE
pod/echo1-559ffc8757-th      1/1     Running   0          22s
pod/echo2-5c6c8ff4b-x56      1/1     Running   0          15s

NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
service/echo1   ClusterIP   10.10.x.x       <none>        80/TCP    39m
service/echo2   ClusterIP   10.10.x.x       <none>        80/TCP    38m

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/echo1   1/1     1            1           22s
deployment.apps/echo2   1/1     1            1           15s

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/echo1-559ffc8      1         1         1       22s
replicaset.apps/echo2-5c6c8ff      1         1         1       15s

我的部署文件:-

apiVersion: v1
kind: Service
metadata:
  name: echo1
spec:
  ports:
  - port: 80
    targetPort: 5678
  selector:
    app: echo1
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: echo1
spec:
  selector:
    matchLabels:
      app: echo1
  replicas: 1
  template:
    metadata:
      labels:
        app: echo1
    spec:
      containers:
      - name: echo1
        image: hashicorp/http-echo
        args:
        - "-text=echo1"
        ports:
        - containerPort: 5678
~                             ```

1 个答案:

答案 0 :(得分:1)

您可以为连接的资源设置通用标签,然后通过--selector删除

$ kubectl delete all --selector=<key>=<value> -n <namespace>
or 
$ kubectl delete all -l <key>=<value> -n <namespace>

在您的文件中进行如下修改并应用上述命令

apiVersion: v1
kind: Service
metadata:
  name: echo1
  labels:
    app: echo1
spec:
  ports:
  - port: 80
    targetPort: 5678
  selector:
    app: echo1
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: echo1
  labels:
    app: echo1
spec:
  selector:
    matchLabels:
      app: echo1
  replicas: 1
  template:
    metadata:
      labels:
        app: echo1
    spec:
      containers:
      - name: echo1
        image: hashicorp/http-echo
        args:
        - "-text=echo1"
        ports:
        - containerPort: 5678

点击here查看更多示例