You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清理Kubernetes集群以部署新应用?kubeadm集群新手问询

卸载旧应用、清理资源及部署新应用指南

一、卸载旧示例应用

首先明确:kubeadm reset是用来销毁整个Kubernetes集群的,绝对不要用它来卸载单个应用,你的问题表述没问题,只是找错了操作方向。

1. 定位并删除应用相关资源

Kubernetes中应用由Deployment、Service、Pod、ConfigMap等资源组成,优先通过以下方式清理:

  • 如果你是用YAML配置文件部署的旧应用,直接用原文件删除所有关联资源:
    kubectl delete -f your-old-app.yaml
    
  • 不知道配置文件的话,先查看集群内所有资源,找到旧应用的资源名称:
    # 查看所有命名空间的资源
    kubectl get all --all-namespaces
    # 或者限定到旧应用所在的命名空间(比如default)
    kubectl get all -n default
    
    然后逐个删除对应的资源,比如删除Deployment和Service:
    kubectl delete deployment <旧应用deployment名称>
    kubectl delete service <旧应用service名称>
    
  • 如果旧应用的所有资源都在单独的命名空间下,直接删除整个命名空间会更彻底(自动清理该空间下所有资源):
    kubectl delete namespace <旧应用所在命名空间>
    

2. 清理残留的异常Pod

偶尔会出现处于Terminating状态无法自动删除的Pod,可强制清理:

# 先找到异常Pod
kubectl get pods --all-namespaces | grep Terminating
# 强制删除指定Pod
kubectl delete pod <异常Pod名称> -n <命名空间> --force --grace-period=0

二、清理节点上的镜像(可选)

如果旧应用的Docker镜像不再需要,可在每个节点(主节点+工作节点)上执行清理:

# 查看本地所有镜像
docker images
# 删除指定镜像(用镜像ID或名称:tag)
docker rmi <image-id>
# 清理所有未被任何容器使用的镜像(谨慎操作,避免误删其他有用镜像)
docker image prune -a

三、部署新应用

以部署一个简单的Nginx应用为例,步骤如下:

  1. 创建Deployment(管理Pod副本):
    kubectl create deployment nginx-demo --image=nginx:latest
    
  2. 暴露Service(对外提供访问入口):
    # NodePort类型适合本地集群访问,会分配一个30000-32767之间的端口
    kubectl expose deployment nginx-demo --port=80 --type=NodePort
    
  3. 验证应用状态:
    # 查看Deployment状态
    kubectl get deployments
    # 查看Pod运行状态
    kubectl get pods
    # 查看Service信息(获取NodePort端口)
    kubectl get services
    
  4. 访问应用:用任意集群节点的IP加上Service的NodePort端口即可访问(比如http://192.168.xx.xx:30xxx)。

如果有自定义的应用配置,推荐编写YAML文件来部署,方便后续维护和修改。

内容的提问来源于stack exchange,提问作者gis_iguess

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:11:28