9
votes

Désinstaller complètement istio (tous les composants) du cluster Kubernetes

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.


0 commentaires

9 Réponses :


9
votes

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.


1 commentaires

Les CRD Istio sont installés via un Job + ConfigMap, donc cela ne les supprimera pas.



0
votes

Supprimez simplement le ns

k delete ns istio-system


3 commentaires

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.



5
votes

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.


0 commentaires

5
votes

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).


0 commentaires

-1
votes

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)


0 commentaires

1
votes

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


0 commentaires

6
votes

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
...


0 commentaires

1
votes

À 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 -


0 commentaires

0
votes

Suppression des CRD sans avoir besoin de trouver les graphiques de barre:

kubectl delete crd -l chart = istio


0 commentaires