버전 1.13

Anthos Service Mesh 제거

이 페이지에서는 Anthos Service Mesh를 제거하는 방법을 설명합니다.

Anthos Service Mesh 제거

다음 명령어를 사용하여 모든 Anthos Service Mesh 구성요소를 제거합니다. 이러한 명령어는 적용한 CRD를 포함하여 istio-system 네임스페이스와 모든 커스텀 리소스 정의(CRD)도 삭제합니다.

  1. 애플리케이션 트래픽이 중단되지 않도록 하려면 다음 안내를 따르세요.

    • STRICT mTLS 정책을 PERMISSIVE로 다운그레이드합니다.
    • 트래픽을 차단할 수 있는 AuthorizationPolicy를 삭제합니다.
  2. 네임스페이스의 사이드카 자동 삽입이 사용 설정된 경우 사용 중지합니다.

     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 라벨이 표시되지 않으면 네임스페이스에서 자동 삽입이 사용 설정되지 않은 것입니다.

  3. 사이드카가 삽입된 워크로드를 다시 시작하여 프록시를 삭제합니다.

  4. 클러스터에서 모든 ControlPlaneRevision 리소스를 삭제합니다.

    kubectl delete controlplanerevision -n istio-system
    
  5. 클러스터에서 웹훅이 존재하는 경우 삭제합니다.

    클러스터 내 Anthos Service Mesh

    validatingwebhooksconfigurationmutatingwebhookconfiguration을 삭제합니다.

    kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot
    

    관리형 Anthos Service Mesh

    A. validatingwebhooksconfiguration을 삭제합니다.

    kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
    

    B. mutatingwebhookconfiguration을 삭제합니다.

    kubectl delete mutatingwebhookconfiguration RELEASE_CHANNEL
    
  6. 모든 워크로드가 시작되고 프록시가 관찰되지 않으면 클러스터 내 제어 영역을 안전하게 삭제하여 청구를 중단할 수 있습니다. 관리형 제어 영역을 배포한 경우 이전 단계에서 자동으로 삭제됩니다.

    클러스터 내 제어 영역을 삭제하려면 아래 명령어를 실행합니다.

    istioctl x uninstall --purge
    

    다른 제어 영역이 없으면 istio-system 네임스페이스를 삭제하여 모든 Anthos Service Mesh 리소스를 삭제할 수 있습니다. 그렇지 않으면 Anthos Service Mesh 버전에 해당하는 서비스를 삭제합니다. 이렇게 하면 CRD와 같은 공유 리소스를 삭제할 수 없습니다.

  7. istio-systemasm-system 네임스페이스를 삭제합니다.

     kubectl delete namespace istio-system asm-system --ignore-not-found=true
    
  8. 삭제되었는지 확인합니다.

     kubectl get ns
    

    출력에 Terminating 상태가 표시되고 표시된 대로 반환해야 합니다. 그렇지 않으면 네임스페이스의 나머지 리소스를 수동으로 삭제하고 다시 시도해야 할 수 있습니다.

     NAME                 STATUS       AGE
     istio-system         Terminating  71m
     asm-system           Terminating  71m