J'ai installé istio à l'aide de ces commandes:
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
Maintenant, comment le désinstaller complètement, y compris tous les conteneurs / ingress / egress, etc. (tout ce qui est installé par istio-demo-auth.yaml?
Merci.
9 Réponses :
Exécutez simplement kubectl delete
pour les fichiers que vous avez appliqués.
kubectl delete -f istio-$(VERSION)/install/kubernetes/istio-demo-auth.yaml
Vous pouvez trouver ceci dans docs également.
Les CRD Istio sont installés via un Job + ConfigMap, donc cela ne les supprimera pas.
Supprimez simplement le ns
k delete ns istio-system
Erreur commune. En supprimant l'espace de noms, vous supprimez simplement le plan de contrôle, pas les informations d'identification / autorisations.
Cela ne supprimera pas non plus les CRD
Cela laissera MutatingWebhooks et d'autres configurations potentiellement problématiques.
Nettoyer Istio est un peu délicat, à cause de tout ce qu'il ajoute: CustomResourceDefinitions, ConfigMaps, MutatingWebhookConfigurations, etc. Il ne suffit pas de supprimer l'espace de noms istio-system
. Le pari le plus sûr est d'utiliser les instructions de désinstallation de istio.io pour la méthode que vous avez utilisée pour installer.
Kubectl: https://istio.io/docs/setup/kubernetes / install / kubernetes / # uninstall
Casque: https://istio.io/docs/setup/kubernetes / install / helm / # uninstall
Lorsque vous effectuez ces étapes, utilisez la version d'Istio que vous essayez de supprimer. Donc, si vous essayez de supprimer Istio 1.0.2, récupérez cette version sur istio.io.
Si vous l'avez installé comme décrit, vous devrez le supprimer de la même manière.
kubectl delete -f istio-$(VERSION)/install/kubernetes/helm/istio/templates/crds.yaml kubectl delete -f istio-$(VERSION)/install/kubernetes/istio-demo-auth.yaml
Ensuite, vous supprimeriez manuellement le dossier et istioctl code >, si vous avez déménagé n'importe où.
IMPORTANT: la suppression d'un espace de noms est très confortable à nettoyer, mais vous ne pouvez pas le faire pour tous les scénarios. Dans ce cas, si vous supprimez uniquement l'espace de noms, vous laissez toutes les autorisations et informations d'identification intactes. Maintenant, disons que vous souhaitez mettre à jour Istio, et l'équipe Istio a apporté quelques modifications de sécurité dans leurs règles RBAC, mais n'a pas changé le nom de l'objet. Vous déploieriez le nouveau fichier yaml, et cela générera une erreur indiquant que l'objet (par exemple, clusterrolebinding) existe déjà. Si vous ne faites pas attention à la nature de cette erreur, vous pouvez vous retrouver avec le pire type d'erreurs (lorsqu'il n'y a pas d'erreur, mais que quelque chose ne va pas).
Bonjour si vous avez installé via helm-template
, vous pouvez utiliser ces commandes:
Pour les CRD:
$ helm template install/kubernetes/helm/istio --name istio --namespace istio-system\ --values install/kubernetes/helm/istio/values-istio-demo.yaml \ --set global.controlPlaneSecurityEnabled=true \ --set global.mtls.enabled=true | kubectl delete -f -
Pour le déploiement / NS. .etc autres ressources:
$ helm template ${ISTIO_BASE_DIR}/install/kubernetes/helm/istio-init --name istio-init --namespace istio-system | kubectl delete -f - $ kubectl delete crd $(kubectl get crd |grep istio)
N'oubliez pas de désactiver l'injection:
kubectl delete -f istio-$(VERSION)/install/kubernetes/helm/istio/templates/crds.yaml kubectl delete -f istio-$(VERSION)/install/kubernetes/istio-demo-auth.yaml kubectl label default your-namespace istio-injection=disabled
En vous basant sur leur documentation ici , vous pouvez générer toutes les spécifications en tant que fichier yml
, puis dirigez-le vers l'opération delete
de kubectl simple
kubectl delete namespace istio-system
voici un exemple:
helm delete -n istio-system --purge istio-system helm delete -n istio-system --purge istio-init ...
À l'aide du profil que vous avez utilisé lors de l'installation, demo
par exemple, exécutez la commande suivante
istioctl manifest generate --set profile = demo | kubectl delete -f -
Suppression des CRD sans avoir besoin de trouver les graphiques de barre:
kubectl delete crd -l chart = istio