클러스터 내 Cloud Service Mesh 제거
이 페이지에서는 Istio API를 사용하는 경우 클러스터 내 Cloud Service Mesh를 제거하는 방법을 설명합니다. Compute Engine API를 사용하는 경우 별도의 단계가 필요하지 않습니다. 차이점을 알아보려면 Cloud Service Mesh 개요 를 참고하세요.
다음 안내에 따라 클러스터 내 Cloud Service Mesh를 제거하면 모든 구성이 삭제됩니다.
관리형 Cloud Service Mesh를 제거하는 경우 관리형 제거 가이드를 따르세요.
클러스터 내에서 관리형으로 이전하는 경우 이전 가이드 를 따르세요.
Cloud Service Mesh 제거
다음 명령어를 사용하여 모든 Cloud Service Mesh 구성요소를 제거합니다.
애플리케이션 트래픽이 중단되지 않도록 하려면 다음 안내를 따르세요.
- STRICT mTLS 정책을 PERMISSIVE로 다운그레이드합니다.
- 트래픽을 차단할 수 있는 AuthorizationPolicy를 삭제합니다.
네임스페이스의 사이드카 자동 삽입을 중지합니다(사용 설정된 경우). 다음 명령어를 실행하여 네임스페이스 라벨을 표시합니다.
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라벨이 표시되지 않으면 네임스페이스에서 자동 삽입이 사용 설정되지 않은 것입니다.사이드카가 삽입된 워크로드를 다시 시작하여 프록시를 삭제합니다.
클러스터에
validatingwebhooksconfiguration및mutatingwebhookconfiguration이 있는 경우 삭제합니다.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.com모든 워크로드가 시작되고 프록시가 관찰되지 않으면 클러스터 내 컨트롤 플레인을 안전하게 삭제하여 청구를 중단할 수 있습니다.
클러스터 내 컨트롤 플레인을 삭제하려면 다음 명령어를 실행합니다.
istioctl uninstall --purge다른 컨트롤 플레인이 없으면
istio-system네임스페이스를 삭제하여 모든 Cloud Service Mesh 리소스를 삭제할 수 있습니다. 그렇지 않으면 Cloud Service Mesh 버전에 해당하는 서비스를 삭제합니다. 이렇게 하면 CRD와 같은 공유 리소스를 삭제할 수 없습니다.선택적으로 Istio CR, Isto CRD, istio-(revision) configmap, asm-options configmap,
istio-system,asm-system네임스페이스를 삭제하여 클러스터에서 서비스 메시를 삭제하거나 다른 Istio API 호환 서비스 메시에서 사용할 수 있습니다.Istio CR을 삭제합니다.
kubectl delete gateways,virtualservices,destinationrules,serviceentries,envoyfilters,sidecars,peerauthentications,requestauthentications,authorizationpolicies,telemetries,wasmplugins,proxyconfigs --all --all-namespacesIstio CRD를 삭제합니다.
kubectl get crds -o name | grep --color=never 'istio.io' | xargs kubectl deleteistio-(revision) configmap을 삭제합니다.
istio-system네임스페이스를 삭제하는 경우 이 단계를 건너뛸 수 있습니다.kubectl delete configmap istio-RELEASE_CHANNEL -n istio-systemRELEASE_CHANNEL을 출시 채널로 바꿉니다.
istio-system네임스페이스를 삭제합니다.kubectl delete namespace istio-system --ignore-not-found=trueasm-system네임스페이스를 삭제합니다.kubectl delete namespace asm-system --ignore-not-found=true삭제되었는지 확인합니다.
kubectl get ns ``` The output should indicate a `Terminating` state and return as shown, otherwise you might have to manually delete any remaining resources in the namespaces and try again. ```sh NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m ```
클러스터를 삭제할 예정이거나 이미 삭제한 경우 각 클러스터가 Fleet에서 등록 취소되었는지 확인합니다.
Fleet 수준에서 Cloud Service Mesh 사용을 중지하려면 Fleet 호스트 프로젝트에서 서비스 메시 기능을 사용 중지합니다.
gcloud container hub mesh disable --project FLEET_PROJECT_ID여기서 FLEET_PROJECT_ID는 Fleet 호스트 프로젝트의 ID입니다.
이 단계를 완료하면 프록시, 클러스터 내 인증 기관, RBAC 역할 및 바인딩을 포함한 모든 Cloud Service Mesh 구성요소가 클러스터에서 체계적으로 삭제됩니다. 설치 프로세스 중 클러스터 내에서 서비스 메시 리소스를 설정하는 데 필요한 권한이 Google 소유 서비스 계정에 부여됩니다. 이러한 삭제 안내는 이러한 권한을 취소하지 않으며 이후에 Cloud Service Mesh를 다시 쉽게 활성화할 수 있게 해줍니다.