클러스터 내 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를 제거하기 전에 클러스터 및 워크로드에서 삭제되는 기능을 고려하세요. 워크로드에서 Cloud Service Mesh 프록시를 삭제하고 다시 시작하면 애플리케이션이 표준 Kubernetes 네트워킹 동작으로 되돌아갑니다.
보안
Cloud Service Mesh를 삭제하면 다음과 같은 보안 기능이 손실됩니다.
- 상호 TLS (mTLS) 암호화: 서비스 간 트래픽이 더 이상 메시지에서 관리하는 mTLS 인증서로 전송 중에 암호화되지 않습니다.
- 승인 정책: 메시
AuthorizationPolicy커스텀 리소스가 더 이상 적용되지 않습니다. 트래픽을 제한하려면 KubernetesNetworkPolicy리소스 또는 애플리케이션 수준 인증 및 승인을 구성해야 합니다.
관측 가능성
Cloud Service Mesh를 삭제하면 다음과 같은 관측 가능성 기능이 손실됩니다.
- 원격 분석 및 측정항목: 요청률, 오류율, 지연 시간과 같은 레이어 7 측정항목의 자동 수집이 중지됩니다. 메시 원격 분석이 더 이상 Cloud Monitoring에 자동으로 수집되지 않습니다. 표준 GKE 측정항목은 영향을 받지 않습니다.
- 대시보드 및 SLO: 사전 구성된 Cloud Service Mesh 대시보드와Google Cloud 콘솔의 서비스 수준 목표 (SLO) 모니터링이 더 이상 채워지지 않습니다.
- 액세스 로깅 및 추적: 클라이언트 mTLS ID와 자동화된 분산 추적이 포함된 사이드카 프록시 액세스 로그가 더 이상 생성되지 않습니다.
서비스 검색 및 네트워킹 복원력
Cloud Service Mesh를 삭제하면 다음과 같은 네트워킹 및 복원력 기능이 손실됩니다.
- 네트워크 복원력: 워크로드에서 자동 재시도, 구성 가능한 요청 시간 제한, 서킷 브레이커, 이상치 감지, 연결 풀 관리 등 사이드카 수준 복원력 기능이 손실됩니다. 애플리케이션은 연결 실패 및 재시도를 직접 관리해야 합니다.
- 멀티 클러스터 서비스 검색: Fleet의 여러 클러스터 간 클러스터 간 엔드포인트 검색 및 라우팅이 더 이상 메시를 통해 작동하지 않습니다. 서비스는 표준 DNS를 사용하여 로컬 클러스터 내의 엔드포인트만 검색할 수 있습니다.
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, Istio 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를 다시 쉽게 활성화할 수 있게 해줍니다.