查看任何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
~ ```发布于 2020-05-20 15:00:52
可以将公共标签设置为已连接的资源,然后按-选择器删除。
$ 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单击这里查看更多示例
https://stackoverflow.com/questions/61916150
复制相似问题