我使用这些命令安装了istio:
VERSION = 1.0.5
GCP = gcloud
K8S = kubectl
@$(K8S) apply -f istio-$(VERSION)/install/kubernetes/helm/istio/templates/crds.yaml
@$(K8S) apply -f istio-$(VERSION)/install/kubernetes/istio-demo-auth.yaml
@$(K8S) get pods -n istio-system
@$(K8S) label namespace default istio-injection=enabled
@$(K8S) get svc istio-ingressgateway -n istio-system
现在,我如何完全卸载它,包括所有容器/入口/出口等(由istio-demo-auth.yaml安装的everthing?
谢谢。
只需为您应用的文件运行kubectl delete
。
kubectl delete -f istio-$(VERSION)/install/kubernetes/istio-demo-auth.yaml
你也可以在docs找到这个。
只需删除ns
k delete ns istio-system
清理Istio有点棘手,因为它添加了所有东西:CustomResourceDefinitions,ConfigMaps,MutatingWebhookConfigurations等。仅删除istio-system
命名空间是不够的。最安全的选择是使用istio.io中的卸载说明来获取您以前安装的方法。
Kubectl:https://istio.io/docs/setup/kubernetes/install/kubernetes/#uninstall
赫尔姆:https://istio.io/docs/setup/kubernetes/install/helm/#uninstall
执行这些步骤时,请使用您尝试删除的Istio版本。因此,如果您尝试删除Istio 1.0.2,请从istio.io获取该版本。
如果您按照描述安装了它,那么您将需要以相同的方式删除它。
kubectl delete -f istio-$(VERSION)/install/kubernetes/helm/istio/templates/crds.yaml
kubectl delete -f istio-$(VERSION)/install/kubernetes/istio-demo-auth.yaml
然后你会手动删除文件夹和istioctl
,如果你移动到任何地方。
重要信息:删除命名空间非常适合清理,但不能在所有方案中执行此操作。在这种情况下,如果仅删除命名空间,则会保留所有权限和凭据。现在,假设您要更新Istio,并且Istio团队已在其RBAC规则中进行了一些安全性更改,但未更改对象的名称。您将部署新的yaml文件,它将抛出一个错误,指出该对象(例如clusterrolebinding)已经存在。如果你不注意那个错误是什么,你可以得到更糟糕的错误类型(当没有错误,但出现问题时)。