Skip to content

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

注意事项

  1. 级联删除:默认会级联删除相关资源(如Deployment会删除其管理的Pod)
  2. 宽限期:默认30秒,Pod会先进入Terminating状态
  3. 强制删除:可能导致资源未正常清理,应谨慎使用
  4. 资源类型缩写:可以使用缩写(如deploy代替deployment
  5. 删除确认:重要删除操作前建议先使用kubectl get确认资源