kubectl 删除具有部署名称的 pod

kubectl delete pod with deployment name

有时我的 pods 经常用 kubectl delete pod 进行调试,因此它会更新容器映像。但每次我必须查找 pod 的完整名称:

kubectl delete pod deployment_name-56fccbbfb8g4rj6

如何在不知道散列的情况下删除 pod?

这是不可能的,但您可以在此处使用 kubectl 一次删除所有这些:

kubectl delete --all pods --namespace=foo

如果您想删除单个 pod,则必须手动执行。否则试试这个解决方案。

您可以根据标签删除广告连播。例如,如果你的 pod 有标签 app=alpine,你可以这样删除它:

kubectl delete pod -l app=alpine

根据您的 shell,您可以使用 auto completion 让系统建议您的 pod 名称。

  • Bash-许多包管理器都提供补全功能(参见here)。你 可以用 apt-get install bash-completionyum install bash-completion 等安装它

  • 对于Zsh这可以用命令kubectl completion zsh生成。在 shell 中获取完成脚本可以启用 kubectl 自动补全。

    要在所有 shell 会话中执行此操作,请将以下内容添加到您的 ~/.zshrc 文件中:

    source <(kubectl completion zsh)
    
    

另一件事是您不需要销毁您的 pod 来更新您的图像。您可以简单地使用 kubectl patch kubectl set image.

如需更多阅读,请查看有关修补 API objects with kubectl.

的 Kubernetes 文档
  • 删除pods/命名空间

kubectl get pod --all-namespaces | grep -viE "compl|运行" | awk 'NR>1{print " -n " }' |while read line;do kubectl delete pod $line;done