クリーンアップに関する問題の解決

このページでは、TRAFFIC_DIRECTOR 実装を使用しているときに Cloud Service Mesh マネージド コントロール プレーンで発生する問題を解決する方法について説明します。

合成サービスをクリーンアップする

TRAFFIC_DIRECTOR コントロール プレーンの実装を使用する場合、Cloud Service Mesh によりサブセットをサポートする合成 Kubernetes Service が作成されます。これらの Service には istio.io/owned-by:gsmconfig.gke.io とラベルが付けられています。

Istio API で discoverySelectors を変更して、合成 Kubernetes Service を含む Namespace を削除した場合、Cloud Service Mesh はこれらの合成 Kubernetes Service を自動的に削除しません。

この問題を軽減するには、次のコマンドを実行して、対象 Namespace 内の合成 Kubernetes Service を手動で削除します。

kubectl delete service -l istio.io/owned-by=gsmconfig.gke.io -n NAMESPACE

NAMESPACE は、クリーンアップする実際の Namespace に置き換えます。

ネットワーク エンドポイント グループのアノテーションをクリーンアップする

TRAFFIC_DIRECTOR コントロール プレーンの実装を使用する場合、Cloud Service Mesh は、ロード バランシング用にサービスに cloud.google.com/neg アノテーションを追加して、ネットワーク エンドポイント グループを作成します。

Istio API で discoverySelectors を変更して Kubernetes Service を含む Namespace を削除した場合、Cloud Service Mesh はこれらのネットワーク エンドポイント グループを自動的に削除しません。

この問題を軽減するには、対象 Namespace のサービスから cloud.google.com/neg アノテーションを手動で削除します。

service_names=($(kubectl get service -n NAMESPACE -o jsonpath='{.items[*].metadata.name}'))
for service in "${service_names[@]}"; do
  kubectl annotate service $service -n NAMESPACE cloud.google.com/neg-
done

NAMESPACE は、クリーンアップする実際の Namespace に置き換えます。