Istio 管理アドオンのセットアップ

IBM Cloud® Kubernetes Service 上の Istio は、Istio のシームレス・インストール、Istio コントロール・プレーン・コンポーネントの自動更新とライフサイクル管理、およびプラットフォームのロギングとモニタリングのツールとの統合を行います。

クラスタから他の Istio インストールを削除する

以前に「 IBM 」の「 Helm 」チャート、またはその他の方法を使用してクラスターに Istio をインストールしていた場合は、マネージド Istio アドオンを有効にする前に、その Istio のインストールをクリーンアップしてください。

始める前に Istio、クラスタにすでにインストールされていることを確認する。 kubectl get namespaces を実行し、出力で istio-system 名前空間を探す。

他の Istio のインストールを削除する:

  • IBM Cloud Istio Helm チャートを使用して Istio をインストールした場合は、以下のようにします。

    1. Istio Helm デプロイメントをアンインストールします。
        helm del istio --purge
        ```
    2. Helm 2.9 以前を使用した場合は、さらにジョブ・リソースを削除します。
    ```sh {: pre}
        kubectl -n istio-system delete job --all
        ```
    3. アンインストール処理には、最大 10 分かかります。 Istio マネージド・アドオンをクラスターにインストールする前に、`kubectl get namespaces` を実行して、`istio-system` 名前空間が削除されたことを確認します。
    
    
  • Istio を手動でインストールした場合、または Istio コミュニティの Helm チャートを使用した場合は、「 Istio のアンインストール」に関するドキュメントを参照してください。

  • 以前にクラスター内に BookInfo をインストールした場合は、それらのリソースをクリーンアップします。

    1. ディレクトリーを Istio ファイルの場所に切り替えます。
        cd <filepath>/istio-1.29.5
        ```
    2. クラスター内の BookInfo サービス、ポッド、デプロイメントをすべて削除します。
    ```sh {: pre}
        samples/bookinfo/platform/kube/cleanup.sh
        ```
    3. アンインストール処理には、最大 10 分かかります。 Istio マネージド・アドオンをクラスターにインストールする前に、`kubectl get namespaces` を実行して、`istio-system` 名前空間が削除されたことを確認します。
    
    
    
    

Istio アドオンのインストール

コミュニティ Istio の代わりに、マネージド Istio アドオンをインストールすることができます。

開始前に

コンソールを使用した Istio アドオンのインストール

  1. クラスタダッシュボードで、 Istio アドオンをインストールしたいクラスタの名前をクリックします。

  2. **「アドオン」**セクションにナビゲートします。

  3. マネージド Istio カード上で、**「インストール」**をクリックします。

  4. **「インストール」**をもう一度クリックします。

  5. マネージド Istio カードに、アドオンが表示されていることを確認します。

CLI を使用した Istio アドオンのインストール

アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。

  1. container-service プラグインを最新バージョンに更新してください。

    ibmcloud update && ibmcloud plugin update container-service
    
  2. サポート対象の Istio バージョンを確認します。

    ibmcloud ks addon-versions --addon istio
    
  3. istioアドオンを有効にします。 一般提供されている「 Istio 」マネージドアドオンのデフォルトバージョン( 1.29.5 )がインストールされています。

    ibmcloud ks cluster addon enable istio --cluster CLUSTER_NAME_OR_ID
    
  4. マネージド Istio アドオンの状態が Addon Ready になっていることを確認します。

    ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_ID
    

    出力例

    NAME            Version     Health State   Health Status
    istio           1.29.5       normal         Addon Ready
    
  5. アドオンの各コンポーネントを表示して、Istio サービスおよび対応するポッドがデプロイされていることを確認することもできます。

    kubectl get svc -n istio-system
    
    kubectl get pods -n istio-system
    
  6. 次に、Istio サービス・メッシュにアプリを含めることができます。

istioctl CLI のインストール

ご使用のコンピューターに istioctl CLI クライアントをインストールします。 詳細については、「 istioctl 」コマンドのリファレンスを参照してください。

  1. クラスタにインストールした Istio のバージョンを確認してください。
    istioctl version
    
  2. お使いのクラスタの Istio のバージョンに対応する istioctl のバージョンを、お使いのコンピュータにダウンロードしてください。
    curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.29.5 sh -
    
  3. Istio パッケージ・ディレクトリーにナビゲートします。
    cd istio-1.29.5
    
  4. Linux および macOS ユーザー: istioctl クライアントを PATH システム変数に追加します。
    export PATH=$PWD/bin:$PATH
    

Istio インストール済み環境のカスタマイズ

managed-istio-custom 構成マップ・リソースを編集することによって、一連の Istio 構成オプションをカスタマイズできます。 これらの設定には、コントロール・プレーンおよびサービス・メッシュのモニタリング、ロギング、およびネットワーキングに対する追加の制御が含まれます。

  1. managed-istio-custom ConfigMap リソースについて説明し、その内容とインラインドキュメントを確認してください。
    kubectl describe cm managed-istio-custom -n ibm-operators
    
  2. managed-istio-custom 構成マップ・リソースを編集します。
    kubectl edit cm managed-istio-custom -n ibm-operators
    
  3. data セクションで、以下の 1 つ以上の構成オプションの <key>: "<value>" ペアを追加します。
istio-components-pilot-requests-cpu
デフォルト値: "500m"
milli 」の CPU 設定で、 istiod コンポーネントのポッドに対する CPU リクエストを設定します。 この値を変更するときには注意してください。 この値を低く設定しすぎると、コントロールプレーンが正常に動作しなくなる可能性があります。また、この値を高く設定しすぎると、 istiod ポッドがスケジューリングされなくなる可能性があります。
istio-global-logging-level
デフォルト値: "default:info" : コントロール・プレーン・コンポーネントに対してログ・スコープとログ・メッセージ・レベルを定義します。 スコープは、コントロール・プレーン・コンポーネント内の機能領域を表します。各スコープは特定のログ情報レベルをサポートします。 カテゴリー化されていないログ・メッセージ用の default ロギング・スコープは、基本の info レベルのコントロール・プレーンのすべてのコンポーネントに適用されます。
個々のコンポーネント・スコープのログ・レベルを指定するには、スコープとレベルのコンマ区切りリストを入力します (例: "<scope>:<level>,<scope>:<level>")。 各コントロールプレーンコンポーネントの適用範囲およびログメッセージの情報レベルの詳細については、『 Istio 』のコンポーネントログに関するドキュメントを参照してください。 データプレーンのログレベルを変更するには、 istioctl proxy-config log <pod> --level <level> コマンドを使用します。
istio-global-outboundTrafficPolicy-mode

デフォルト値: "ALLOW_ANY" : デフォルトでは、サービス・メッシュからのアウトバウンド・トラフィックがすべて許可されます。 サービス・レジストリー内に定義されていないホスト、またはサービス・メッシュ内に ServiceEntry が含まれないホストへのサービス・メッシュからのアウトバウンド・トラフィックをブロックするには、REGISTRY_ONLY に設定します。

istio-global-proxy-accessLogFile

デフォルト値: "" : Envoy プロキシーはアクセス情報を標準出力に出力します。 これらのログは、Ingress または Egress に関する問題をデバッグする際に役立ちます。 Envoy コンテナーに対して kubectl logs コマンドを実行するときにこのアクセス情報を表示するには、"/dev/stdout" に設定します。

istio-monitoring-telemetry

デフォルト値: "true" : デフォルトでは、テレメトリー・メトリックおよび Prometheus サポートは有効になっています。 テレメトリー・メトリックに関連するすべてのパフォーマンス問題を削除し、すべてのモニタリングを無効にするには、"false" に設定します。

istio-meshConfig-enableTracing

デフォルト値: "true" : デフォルトでは、Istio は 100 個の要求ごとに 1 個の要求に対してトレース・スパンを生成します。 トレース・スパンを無効にするには、"false" に設定します。

istio-pilot-traceSampling
デフォルト値: "1.0"
デフォルトでは、 Istio は100件のリクエストごとに1件についてトレーススパンを生成します。これは、サンプリング率が1%に相当します。 より多くのトレース・スパンを生成するには、パーセンテージ値を増やします。
istio-components-pilot-hpa-maxReplicas
デフォルト値: "5"
デフォルトでは、 Istio により、 istiod のデフォルトの水平ポッドオートスケーラー(HPA)の最大ポッド数が 5 に設定されます。 大規模なサービスメッシュを運用しており、 istiod が設定の更新にさらなるリソースを必要とする場合を除き、この値を増やさないでください。

例えば、構成マップは以下の例のようになります。

apiVersion: v1
data:
  istio-ingressgateway-zone-1: dal10
  <key: value> # such as istio-egressgateway-public-1-enabled: "false"
kind: ConfigMap
metadata:
  name: managed-istio-custom
  namespace: ibm-operators

構成マップにこの表のオプションがありませんか? 構成マップにユーザー定義の値が含まれているため、時間経過に伴いリリースされるオプションに照らして構成マップが更新されていません。 ここでは、構成マップのコピーをバックアップし、クラスターからその構成マップを削除できます。 約 5 分経過すると、新しいオプションが含まれるデフォルトの構成マップがクラスターに作成されます。 その後、以前に構成した設定をバックアップからこのデフォルト構成マップにコピーし、新しい設定を構成し、変更を適用できます。

  1. 構成ファイルを保存して閉じます。

  2. istio-global-logging-level または istio-global-proxy-accessLogFile の設定を変更した場合、データ・プレーン・ポッドを再始動して、変更を適用する必要があります。

    1. istio-system 名前空間に含まれていないすべてのデータ・プレーン・ポッドのリストを取得します。
        istioctl version --short=false | grep "data plane version" | grep -v istio-system
        ```
        出力例
    
        ```sh {: screen}
        data plane version: version.ProxyInfo{ID:"test-6f86fc4677-vsbsf.default", IstioVersion:"1.29.5"}
        data plane version: version.ProxyInfo{ID:"rerun-xfs-f8958bb94-j6n89.default", IstioVersion:"1.29.5"}
        data plane version: version.ProxyInfo{ID:"test2-5cbc75859c-jh6bx.default", IstioVersion:"1.29.5"}
        data plane version: version.ProxyInfo{ID:"minio-test-78b5d4597d-hkpvt.default", IstioVersion:"1.29.5"}
        data plane version: version.ProxyInfo{ID:"sb-887f89d7d-7s8ts.default", IstioVersion:"1.29.5"}
        data plane version: version.ProxyInfo{ID:"gid-deployment-5dc86db4c4-kdshs.default", IstioVersion:"1.29.5"}
        ```
    2. 各ポッドを削除して、再始動します。 前のステップの出力では、ポッド名と名前空間が各項目に `data plane version: version.ProxyInfo{ID:"<pod_name>.<namespace>", IstioVersion:"1.29.5"}` としてリストされています。
    ```sh {: pre}
        kubectl delete pod <pod_name> -n <namespace>
        ```
    
ConfigMap の設定を変更したいですか?
configmap に追加した設定を変更したい場合は、パッチ・スクリプトを使用します。 例えば、istio-global-proxy-accessLogFile: "/dev/stdout" 設定を追加した後で、"" に戻す場合は、kubectl patch cm managed-istio-custom -n ibm-operators --type='json' -p='[{"op": "add", "path": "/data/istio-global-proxy-accessLogFile", "value":""}]' を実行します。
1.24 以降でカスタマイズのセットアップをデバッグする必要がありますか?
ibm-operators名前空間のmanaged-istio-istiod-control-plane-values configmapにあるhelm value.yaml とhelmの結果ログを確認してください。 value.yaml に、あなたの変更が追加されたかどうかが表示されます。 helmの結果には、構文エラーがあったかどうかが表示されます。
kubectl get cm -n ibm-operators managed-istio-istiod-control-plane-values -o json | jq -r .data.\"values.yaml\"
kubectl get cm -n ibm-operators managed-istio-istiod-control-plane-values -o json | jq -r .data.\"values.yaml.helm.result\"
Thu, 23 Oct 2025 19:58:48 GMT HELM_SUCCESS: Release "istiod" has been upgraded. Happy Helming!
NAME: istiod
LAST DEPLOYED: Thu Oct 23 19:58:42 2025
NAMESPACE: istio-system
STATUS: deployed
REVISION: 275
TEST SUITE: None
NOTES:
"istiod" successfully installed!
1.23 でのカスタマイズ設定のデバッグが必要ですか?
kubectl logs -n ibm-operators -l name=managed-istio-operator を実行して、 addon-istio-operator ( Istio バージョン 1.10 から 1.23 ) ポッドのログをチェックする。 行われたすべてのカスタム Istio の変更は、Istio オペレーターにより検証および調整されます。

Istio アドオンを無効化する場合、アンインストール中に managed-istio-custom 構成マップが削除されることはありません。 Istio アドオンを再有効化すると、カスタマイズした構成マップがインストール中に適用されます。 Istio を後からインストールするときにカスタム設定を再使用しない場合は、kubectl delete cm -n ibm-operators managed-istio-custom を実行して Istio アドオンを無効にした後で configmap を削除する必要があります。 Istio アドオンを再有効化するときに、インストール中にデフォルトの構成マップが適用されます。

Istio アドオンからコミュニティへの移行 Istio

管理された Istio アドオンのバージョン 1.21 から 1.23 を使用している場合、代わりにコミュニティ Istio の後のバージョンに移行することができます。

始める前に Istio が不要になった場合は、これらの手順を完了する代わりに、 コミュニティ Istio をインストールせずにアドオンをアンインストール することができます。

ステップ 1: コンソールから Istio アドオンを無効にする

コンソールまたはCLIからアドオンを無効にしてください。

  1. クラスタダッシュボードで、 Istio アドオンを削除したいクラスタの名前をクリックします。

  2. **「アドオン」**セクションにナビゲートします。

  3. マネージド Istio カード上で、「アクション」メニュー・アイコンをクリックします。

  4. **「アンインストール」**をクリックします。 このクラスタでは、マネージド Istio アドオンが無効になっています。

  5. マネージド Istio カードに、アンインストールしたアドオンが表示されなくなったことを確認します。

ステップ1:CLIから Istio アドオンを無効にする

アドオンを無効にし、 Istio のアドオンが残っていないことを確認します。

  1. istioアドオンを無効にします。
    ibmcloud ks cluster addon disable istio --cluster CLUSTER_NAME_OR_ID -f
    
  2. このクラスター内のすべてのマネージド Istio アドオンが無効になっていることを確認します。 どのような Istio アドオンも出力で返されません。
    ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_ID
    
  3. 10 分間待ってから、次のステップに進みます。 これにより、 Istio。

ステップ2: Istio オペレーターのスケールダウン

Istio オペレーターの展開規模を縮小します。 Istio アドオンによるクラスタ内 Istio オペレータの使用から、コミュニティ Istio による istioctl オペレータの使用に移行する場合、 Istio の制御をめぐって両方のインストール方法が争うことを避ける必要があります。 オペレータをスケールダウンし、IOPを削除し、オペレータを削除する手順は、 Istio をアンインストールすることなく、クラスタ内のオペレータを削除します。

以下のコマンドを実行します。

kubectl scale deployment -n ibm-operators addon-istio-operator --replicas=0

ステップ3:資源の節約

istio-system ネームスペースで作成または変更したリソース、およびカスタムリソース定義(CRD)によって自動的に生成されたすべての Kubernetes リソースを保存してください。

  1. managed-istio-custom ConfigMap を保存して、問題のトラブルシューティングを行ったり、後でアドオンを再インストールしたりします。

    kubectl get cm -n ibm-operators managed-istio-custom -o yaml > Customizations.yaml
    
  2. すべての IstioOperator CR (IOP) を保存します。 クラスタ内 Istio オペレータは、クラスタ内オペレータがIOPに定義されているリソースを削除するまで、IOPの削除を防ぐために、IOPにファイナライザを持つ。 Istio を削除せずに Istio 演算子を削除するには、ファイナライザーを削除しなければならない。

    • IOP リソースをリストします。
        kubectl get iop -A
        ```
    - リストアップされた各IOPリソースについて、ファイナライザを削除する。
    
        `managed-istio` IOPを使用した例:
        ```sh {: pre}
        kubectl patch -n ibm-operators istiooperator/managed-istio --type json --patch='[ { "op": "remove", "path": "/metadata/finalizers" } ]'
        ```
    - リストされた IOP リソースごとに、それぞれをファイルに保管します。
    ```sh {: pre}
        kubectl get iop -n <IOP_namespace> <IOP_name> -o yaml > <IOP_name>.yaml
        ```
    
  3. 10 分間待ってから、次のステップに進みます。

ステップ4:IOPのインストーラーの変更

カスタムのイングレス・ゲートウェイなど、 Istio オペレータ(IOP)リソースをすべて削除する。

  1. istioctl cliツールが必要なパッチバージョンであることを確認してください。

    istioctl version
    
  2. 前のステップで保存した各 IOP ファイルについて、 istioctl upgrade コマンドを実行し、 Istio を istioctl のバージョンと一致するものにアップグレードします。 このコマンドはまた、インストールとアップグレードのメカニズムを、クラスタ内演算子を使用するものから、 istioctl に変更します。

    istioctl upgrade -f <filename>.yaml
    

ステップ5: Istio オペレーターとIOPの取り外し

Istio オペレータ配置、サービスアカウント、クラスタ ロール バインディング、クラスタ ロール、およびすべての IOP を削除します。 Istio はクラスタ内の Istio オペレーターから istioctl ベースのインストールに転送された。 これで、 Istio オペレータのインストールがスケールダウンしている間に、クラスタ内の残骸を片付けることができます。

  1. 次のコマンドを実行して、 Istio operator deployment を削除します:

    kubectl delete deployment -n ibm-operators addon-istio-operator --ignore-not-found=true
    kubectl delete serviceaccount -n ibm-operators addon-istio-operator --ignore-not-found=true
    kubectl delete clusterrolebinding addon-istio-operator --ignore-not-found=true
    kubectl delete clusterrole addon-istio-operator --ignore-not-found=true
    
  2. IOPを削除する。

    • IOP リソースをリストします。
        kubectl get iop -A
        ```
    - リストされた各IOPリソースについて、それを削除する:
    ```sh {: pre}
        kubectl delete IstioOperator <resource_name> -n <namespace>
        ```
    

ステップ6:取り外し ConfigMap

ConfigMap、先に保存してあるので、削除することができる。

managed-istio-custom ConfigMap を取り外す。

kubectl delete cm -n ibm-operators managed-istio-custom

アドオンの削除は完了し、必要に応じてコミュニティ Istio の使用とアップグレードを継続できます。

「 Istio 」アドオンのアンインストール

Istio の使用が終了したら、クラスター内の Istio リソースをクリーンアップし、 Istio のアドオンをアンインストールできます。

手順 1:アンインストール前のリソースの保存

istio-system 名前空間で作成または変更したリソースはすべて削除されます。 これらのリソースを保持するには、「 Istio 」アドオンをアンインストールする前に、それらを保存してください。

  1. managed-istio-custom ConfigMap を保存して、問題のトラブルシューティングを行ったり、後でアドオンを再インストールしたりします。

    kubectl get cm -n ibm-operators managed-istio-custom -o yaml > Customizations.yaml
    
  2. バージョン 1.23 以前の場合は、すべての IstioOperator CR(IOP)を保存してください。

    a. IOP リソースをリストします。

    kubectl get iop -A
    

    b. リストされた IOP リソースごとに、それぞれをファイルに保管します。

    kubectl get iop -n <IOP_namespace> <IOP_name> -o yaml > <IOP_name>.yaml
    

ステップ 2: Istio アドオンのアンインストール

コンソールまたは CLI からアドオンをアンインストールします。 Istio 1.20 以前の場合、カスタム Istio オペレータ(IOP)リソースは自動的に削除されます。

コンソールからの Istio アドオンのアンインストール

  1. クラスタダッシュボードで、 Istio アドオンを削除したいクラスタの名前をクリックします。

  2. **「アドオン」**セクションにナビゲートします。

  3. マネージド Istio カード上で、「アクション」メニュー・アイコンをクリックします。

  4. **「アンインストール」**をクリックします。 このクラスター内のマネージド Istio アドオンが無効になり、このクラスター内の Istio リソースがすべて削除されます。

  5. マネージド Istio カードに、アンインストールしたアドオンが表示されなくなったことを確認します。

CLI から「 Istio 」アドオンをアンインストールする

非推奨の istio-sample-bookinfoistio-extras アドオンをインストールしていない場合は、ステップ 1 と 2 を省略してください。

  1. istio-sample-bookinfoアドオンを無効にします。
    ibmcloud ks cluster addon disable istio-sample-bookinfo --cluster CLUSTER_NAME_OR_ID
    
  2. istio-extrasアドオンを無効にします。
    ibmcloud ks cluster addon disable istio-extras --cluster CLUSTER_NAME_OR_ID
    
  3. istioアドオンを無効にします。
    ibmcloud ks cluster addon disable istio --cluster CLUSTER_NAME_OR_ID -f
    
  4. このクラスター内のすべてのマネージド Istio アドオンが無効になっていることを確認します。 どのような Istio アドオンも出力で返されません。
    ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_ID
    

ステップ 3: リソースの削除

リソースが保存され、アドオンが無効になった後、リソースを削除できます。

  1. アンインストール中に managed-istio-custom 構成マップが削除されることはありません。 後で Istio アドオンを再有効化する場合、構成マップに対して行ったカスタマイズ設定がインストール時に適用されます。 後から Istio をインストールするときにカスタム設定を再使用しない場合は、configmap を削除する必要があります。

    kubectl delete cm -n ibm-operators managed-istio-custom
    
  2. バージ ョ ン 1.23 以前の場合は、 カ ス タ ム Istio オペレー タ (IOP) リ ソ ース と IOP を削除 し ます。

    a. カスタム Ingress ゲートウェイの場合など、作成したすべてのカスタム Istio オペレーター (IOP) リソースを削除します。 このコマンドを実行すると、Istio オペレーターにより、IOP リソースが作成したすべてのリソース (デプロイメントやサービスなど) が自動的に削除されます。

    kubectl delete IstioOperator <resource_name> -n <namespace>
    

    b. managed-istio IOPを削除する。

    kubectl delete iop -n ibm-operators managed-istio
    
  3. バージョン 1.24 以降の場合は、保存してから addon-istio ゲートウェイ ConfigMaps, カスタムゲートウェイを削除し、 Istio コントロールプレーンを削除します。

    a. addon-istio ゲートウェイ ConfigMaps を保存する。

    kubectl get cm -n ibm-operators managed-istio-ingressgateway-values -o json | jq -r .data.\"values.yaml\" > ingress-gateway.values
    kubectl get cm -n ibm-operators managed-istio-egressgateway-values -o json | jq -r .data.\"values.yaml\" > egress-gateway.values
    

    b. addon-istio ゲートウェイ ConfigMaps を削除する。

    kubectl delete cm -n ibm-operators managed-istio-egressgateway-values
    kubectl delete cm -n ibm-operators managed-istio-ingressgateway-values
    

    c. カスタムゲートウェイを 削除する。

    d. Istio コントロールプレーンを削除する。

    istioctl uninstall -y --purge
    

    出力:

    All Istio resources will be pruned from the cluster
    Removed apps/v1, Kind=Deployment/istiod.istio-system.
    Removed /v1, Kind=Service/istiod.istio-system.
    Removed /v1, Kind=ConfigMap/istio.istio-system.
    Removed /v1, Kind=ConfigMap/istio-sidecar-injector.istio-system.
    Removed /v1, Kind=Pod/istiod-7f59b54bfd-p5f4d.istio-system.
    Removed /v1, Kind=Pod/istiod-7f59b54bfd-zckw6.istio-system.
    Removed policy/v1, Kind=PodDisruptionBudget/istiod.istio-system.
    Removed autoscaling/v2, Kind=HorizontalPodAutoscaler/istiod.istio-system.
    Removed admissionregistration.k8s.io/v1, Kind=MutatingWebhookConfiguration/istio-sidecar-injector..
    ✔ Uninstall complete
    
  4. 10 分間待ってから、次のステップに進みます。

手順 4: Istio 演算子を削除する

バージョン 1.23 以前の場合、アドオンが完全にアンインストールされた後、 Istio オペレータを削除できます。

Istio オペレーター・デプロイメント、サービス・アカウント、クラスター役割バインディング、およびクラスター役割を削除します。

kubectl delete deployment -n ibm-operators addon-istio-operator --ignore-not-found=true
kubectl delete serviceaccount -n ibm-operators addon-istio-operator --ignore-not-found=true
kubectl delete clusterrolebinding addon-istio-operator --ignore-not-found=true
kubectl delete clusterrole addon-istio-operator --ignore-not-found=true