查找任何可以帮助我删除部署中所有相关资源(不包括特定资源)的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
~ ```
答案 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查看更多示例