web-dev-qa-db-ja.com

Kubernetes ClusterからISTIO(すべてのコンポーネント)を完全にアンインストールする

これらのコマンドを使用して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
 _

さて、すべてのコンテナ/入力/ egressなどを含めて完全にアンインストールするにはどうすれば(istio-demo-auth.yamlによってインストールされていますか?

ありがとう。

10
user674669

それらの ここでのドキュメント 、すべての仕様をymlファイルとして生成することができ、それを単純なKubectlのdelete操作にパイプすることができます。

istioctl manifest generate <your original installation options> | kubectl delete -f -
 _

これが例です。

istioctl manifest apply --set profile=default | kubectl delete -f -
 _

このアプローチの欠点は、特に特定のコンポーネントを有効にした場合は、ISTIOをインストールしたときに使用したすべてのオプションを覚えておくことです。

Helmのチャートを使用してistioをインストールした場合は、簡単にアンインストールできます。

まず、インストールされているすべてのチャートをリストします。

helm list -n istio-system
NAME    NAMESPACE   REVISION    UPDATED                                 STATUS   
istiod  istio-system    1       2020-03-07 15:01:56.141094 -0500 EST    deployed   
 _

次の構文を使用してチャートを削除/アンインストールします。

helm delete -n istio-system --purge istio-system
helm delete -n istio-system --purge istio-init
...
 _

これを行う方法の詳細については、 Webサイト を確認してください。

istioまたはistioctlを独自のhelmを使用してnamespaceをインストールしている場合は、namespaceを完全に削除することができます。これは、その中に作成されたすべてのリソースを削除します。

kubectl delete namespace istio-system 
 _
0

通常のISTIOアンインストール(ISTIOがHELMまたはISTIOCTLによってインストールされた方法に応じて)以下のステップを実行できます。

  • Istio-systemネームスペースにまだ存在するものが存在するかどうかを確認してから手動で削除された場合は、ISTIO-Systemネームスペースも削除します。
  • PODに関連付けられているサイドカーがあるかどうかを確認します(SideCarsがアンインストールに失敗した場合にはクリーンアップされません)。
kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.namespace}{"\t"}{..image}{"\n\n"}{end}' -A | grep 'istio/proxyv' | grep -v istio-system
 _
  • まだ使用中のCRDを取得し、関連するリソースを削除します
kubectl get crds | grep 'istio.io' | cut -f1-1 -d "." |     xargs -n1 -I{} bash -c "  echo {} && kubectl get --all-namespaces  {} -o wide  && echo -e '---'"

 _
  • すべてのCRDを削除します
kubectl get crds | grep 'istio.io' |   xargs -n1 -I{} sh -c "kubectl delete crd {}"

 _
  • ラベルを編集してください(オプション)
kubectl label default <namespace name> istio-injection=disabled
 _
0
hmharsh3

HELMチャートを見つける必要がないCRDSの削除

kubectl delete crd -l chart=istio _

0
Gerry