kubectl delete - 删除资源
kubectl delete 用于删除 Kubernetes 集群中的资源,支持通过文件名、资源名、标签选择器或资源类型删除。
基本语法
bash
kubectl delete ([-f FILENAME] | TYPE [(NAME | -l label | --all)]) [flags]选项
| 选项 | 缩写 | 描述 |
|---|---|---|
--all | 无 | 删除指定类型的所有资源 |
--all-namespaces | -A | 在所有命名空间中查找要删除的资源 |
--cascade | 无 | 级联删除策略(background/foreground/orphan) |
--field-selector | 无 | 使用字段选择器过滤资源 |
--filename | -f | 包含要删除资源的文件、目录或URL |
--force | 无 | 强制立即删除(使用 --grace-period=0) |
--grace-period | 无 | 删除前的宽限期(秒,-1表示默认值) |
--ignore-not-found | 无 | 如果资源不存在也不报错 |
--now | 无 | 相当于 --grace-period=1 |
--selector | -l | 使用标签选择器过滤资源 |
--timeout | 无 | 放弃操作前的等待时间 |
经典案例
按资源名称删除
bash
# 删除单个Pod
kubectl delete pod my-pod
# 删除Deployment
kubectl delete deployment my-deployment
# 删除Service
kubectl delete service my-service按文件删除
bash
# 通过YAML文件删除资源
kubectl delete -f deployment.yaml
# 删除目录下所有配置文件定义的资源
kubectl delete -f configs/批量删除
bash
# 删除所有Pod(危险操作)
kubectl delete pods --all
# 删除特定标签的资源
kubectl delete pods -l app=nginx
# 删除命名空间及其所有资源
kubectl delete namespace my-ns高级删除选项
bash
# 强制立即删除Pod(不推荐生产环境使用)
kubectl delete pod my-pod --grace-period=0 --force
# 非级联删除(保留Pod)
kubectl delete deployment my-deployment --cascade=orphan
# 删除所有命名空间中的匹配资源
kubectl delete pods -l app=nginx --all-namespaces注意事项
- 级联删除:默认会级联删除相关资源(如Deployment会删除其管理的Pod)
- 宽限期:默认30秒,Pod会先进入Terminating状态
- 强制删除:可能导致资源未正常清理,应谨慎使用
- 资源类型缩写:可以使用缩写(如
deploy代替deployment) - 删除确认:重要删除操作前建议先使用
kubectl get确认资源
