Cloud Service Mesh 제거
이 페이지에서는 Cloud Service Mesh를 제거하는 방법을 설명합니다.
Cloud Service Mesh 제거
다음 명령어를 사용하여 모든 Cloud Service Mesh 구성요소를 제거합니다. 이러한 명령어는 적용한 CRD를 포함하여 istio-system 네임스페이스와 모든 커스텀 리소스 정의(CRD)도 삭제합니다.
애플리케이션 트래픽이 중단되지 않도록 하려면 다음 안내를 따르세요.
- STRICT mTLS 정책을 PERMISSIVE로 다운그레이드합니다.
 - 트래픽을 차단할 수 있는 AuthorizationPolicy를 삭제합니다.
 
이 클러스터에서 자동 관리를 사용 중지합니다(직접 사용하거나 Fleet 기본 구성 사용).
gcloud container fleet mesh update --management manual네임스페이스의 사이드카 자동 삽입을 중지합니다(사용 설정된 경우). 다음 명령어를 실행하여 네임스페이스 라벨을 표시합니다.
kubectl get namespace YOUR_NAMESPACE --show-labels출력은 다음과 비슷합니다.
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
LABELS열 아래의 출력에istio.io/rev=이 표시되면 삭제합니다.kubectl label namespace YOUR_NAMESPACE istio.io/rev-LABELS열 아래의 출력에istio-injection이 표시되면 삭제합니다.kubectl label namespace YOUR_NAMESPACE istio-injection-istio.io/rev또는istio-injection라벨이 표시되지 않으면 네임스페이스에서 자동 삽입이 사용 설정되지 않은 것입니다.사이드카가 삽입된 워크로드를 다시 시작하여 프록시를 삭제합니다.
관리형 Cloud Service Mesh를 사용하는 경우 클러스터에서 모든
controlplanerevision리소스를 삭제합니다.kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-system여기서 RELEASE_CHANNEL은
asm-managed,asm-managed-rapid또는asm-managed-stable등 사용자가 프로비저닝한 출시 채널입니다.클러스터에 웹훅이 있는 경우 삭제합니다.
클러스터 내 Cloud Service Mesh
validatingwebhooksconfiguration및mutatingwebhookconfiguration을 삭제합니다.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot관리형 Cloud Service Mesh
A.
validatingwebhooksconfiguration을 삭제합니다.kubectl delete validatingwebhookconfiguration istiod-istio-system-mcpB.
mutatingwebhookconfiguration을 삭제합니다.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL모든 워크로드가 시작되고 프록시가 관찰되지 않으면 클러스터 내 컨트롤 플레인을 안전하게 삭제하여 청구를 중단할 수 있습니다. 관리형 컨트롤 플레인을 배포한 경우 이전 단계에서 자동으로 삭제됩니다.
클러스터 내 컨트롤 플레인을 삭제하려면 아래 명령어를 실행합니다.
istioctl x uninstall --purge다른 컨트롤 플레인이 없으면
istio-system네임스페이스를 삭제하여 모든 Cloud Service Mesh 리소스를 삭제할 수 있습니다. 그렇지 않으면 Cloud Service Mesh 버전에 해당하는 서비스를 삭제합니다. 이렇게 하면 CRD와 같은 공유 리소스를 삭제할 수 없습니다.istio-system및asm-system네임스페이스를 삭제합니다.kubectl delete namespace istio-system asm-system --ignore-not-found=true삭제되었는지 확인합니다.
kubectl get ns출력에
Terminating상태가 표시되고 표시된 대로 반환해야 합니다. 그렇지 않으면 네임스페이스의 나머지 리소스를 수동으로 삭제하고 다시 시도해야 할 수 있습니다.NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m- 클러스터를 삭제할 예정이거나 이미 삭제한 경우 각 클러스터가 Fleet에서 등록 취소되었는지 확인합니다.
 
관리형 Cloud Service Mesh Fleet 기본 구성을 사용 설정했고 이후 클러스터에서 사용 중지하려면 이를 사용 중지합니다. 단일 클러스터에서만 제거하는 경우 이 단계를 건너뛸 수 있습니다.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_ID여기서 FLEET_PROJECT_ID는 Fleet 호스트 프로젝트의 ID입니다.
관리형 Cloud Service Mesh를 사용하는 경우
mdp-controller배포를 삭제합니다.kubectl delete deployment mdp-controller -n kube-systemistio-cni-plugin-config구성 맵이 있는지 확인합니다.kubectl get configmap istio-cni-plugin-config -n kube-systemistio-cni-plugin-config구성 맵이 있으면 삭제합니다.kubectl delete configmap istio-cni-plugin-config -n kube-systemistio-cni-nodedaemonset를 삭제합니다.kubectl delete daemonset istio-cni-node -n kube-system
이 단계가 완료되면 프록시, 클러스터 내 인증 기관, RBAC 역할 및 바인딩을 포함한 모든 Cloud Service Mesh 구성요소가 클러스터에서 체계적으로 삭제됩니다. 설치 프로세스 중 클러스터 내에서 서비스 메시 리소스를 설정하는 데 필요한 권한이 Google 소유 서비스 계정에 부여됩니다. 이러한 삭제 안내는 이러한 권한을 취소하지 않으며 이후에 Cloud Service Mesh를 다시 쉽게 활성화할 수 있게 해줍니다.