Kubernetes “的反面是什么?”;“kubectl应用”吗;?

Kubernetes “的反面是什么?”;“kubectl应用”吗;?,kubernetes,Kubernetes,我在minikube玩,安装了错误版本的istio。我跑: kubectl apply -f install/kubernetes/istio-demo-auth.yaml 而不是: kubectl apply -f install/kubernetes/istio-demo.yaml 我想我应该撤销它,然后安装正确的 但是我似乎找不到一个命令 如何撤消“kubectl apply”命令?一种方法是,但它意味着几件事: 这些资源是首先创建的。如果你真的想“恢复到以前的状态”,我不确定Kube

我在minikube玩,安装了错误版本的istio。我跑:

kubectl apply -f install/kubernetes/istio-demo-auth.yaml
而不是:

kubectl apply -f install/kubernetes/istio-demo.yaml
我想我应该撤销它,然后安装正确的

但是我似乎找不到一个
命令

如何撤消“kubectl apply”命令?

一种方法是,但它意味着几件事:

  • 这些资源是首先创建的。如果你真的想“恢复到以前的状态”,我不确定Kubernetes中是否有内置的工具可以做到这一点(因此,如果你有备份,你真的会从备份中恢复)

  • 容器并没有修改主机:容器可以挂载根文件系统并对其进行更改,或者挂载内核子系统(iptables等)。
    delete
    命令也不会将其还原,在这种情况下,您确实需要检查产品的文档,看看它们是否提供了任何官方方法来保证正确的清理


  • 如果您创建了新的应用程序,请使用@zerkms建议的
    kubectl delete

    但是,如果您像我一样,将较新版本部署到不同的群集,则应用程序会陷入如下创建模式:

    NAME                   READY   STATUS             RESTARTS   AGE
    my-application-csbxl   0/1     ContainerCreating  0          5m25s
    my-application-5bcvc   1/1     Running            0          2d1h
    
    那么最好的解决方案是回滚,因为它会返回到以前的部署:

    kubectl rollout undo deployment my-application
    

    kubectl delete-f
    但这意味着您从头开始创建了这些资源,它将从字面上删除它们,而不是“恢复到以前的版本”。另外,若他们的容器和主机有关系,它也不会被还原。@zerkms请不要在评论中回答问题。我认为你所说的是正确的,而且是合适的回答。@ChathanDriehuys它需要的远不止这些,但确实如此。@zerkms fair。对于这样一个简单的问题,我认为一个简单的两行回答,一个命令和一个文档链接就足够了。当然,这个观点完全是我自己的,而且是我自己的!好吧,那就不要回去了。小心使用apply命令。(我是kubernetes的新手,因此使用minikube而不是真正的集群学习这是一件好事。(关闭重置minikube…@Vaccano您是否尝试使用正确的清单重新应用了它?如果它是一个学习集群-对它做肮脏的事情,同时您可以从中学习:-)嗯,这将是一个非常好的主意。唉,我已经运行了
    minikube delete
    。也许下次吧。我确实从中学到了关于库伯内特斯备份的重要一课。对于我的项目,它已升级为“必须拥有”。请注意,从版本开始,您可能需要单独删除入口资源,例如
    kubectl delete ing-l app=bar-n foo