번들 Istio를 Cloud Service Mesh로 마이그레이션

이 단계는 기본적으로 Knative serving 'GKE 부가기능'에 포함된 Istio 번들 버전에 해당합니다.

Knative serving 'GKE 부가기능' 제거 프로세스를 수행할 때 Istio 번들 버전이 제거되기 때문에 이 페이지의 단계는 클러스터에 Cloud Service Mesh를 설치한 후 인그레스 게이트웨이를 구성합니다.

시작하기 전에

개요

일반적으로 Istio 번들 버전에서 마이그레이션할 때 Cloud Service Mesh를 설치하는 프로세스는 Cloud Service Mesh 설치를 새로 수행하는 것과 동일한 프로세스입니다. 이 프로세스에서는 Cloud Service Mesh 버전 1.18이 클러스터 내 제어 영역과 함께 설치됩니다.

Cloud Service Mesh 버전 1.18 설치

Cloud Service Mesh 설치 문서를 참고하여 Cloud Service Mesh를 설치합니다.

시작하기 전에:

  • 마이그레이션의 경우 후속 구성 단계 중에 인그레스 게이트웨이를 개별적으로 설치해야 합니다. 설치 스크립트는 기본적으로 인그레스 게이트웨이를 설치하지 않습니다.

  • 선택사항: 또한 Cloud Service Mesh 인증 기관(Mesh CA)을 사용하는 경우 Cloud Service Mesh 설치 스크립트에 --ca mesh_ca 플래그를 포함해야 합니다.

Cloud Service Mesh를 설치하는 방법:

Cloud Service Mesh 문서의 단계를 따릅니다. Cloud Service Mesh 버전 1.18 설치

다음은 필수 플래그가 포함된 기본 명령어의 예시입니다.

./asmcli install \
  --project_id ${PROJECT_ID} \
  --cluster_name ${CLUSTER_NAME} \
  --cluster_location ${CLUSTER_LOCATION} \
  --ca mesh_ca \
  --output_dir DIR_PATH \
  --enable_all

Cloud Service Mesh 인그레스 구성

이 섹션에서 마이그레이션 스크립트gke-system 네임스페이스 내에서 Cloud Service Mesh 인그레스 게이트웨이를 만들기 위해 사용됩니다.

마이그레이션의 경우 gke-system 네임스페이스가 사용되어 인그레스 게이트웨이가 최근에 삭제된 '번들 Istio'에 사용된 동일한 네임스페이스 내에 배치됩니다. 따라서 Cloud Service Mesh 인그레스 포드가 인그레스 서비스에 필요한 구성을 변경하지 않고도 트래픽을 매끄럽게 인계할 수 있습니다. 예를 들어 새 외부 IP 주소를 구성할 필요가 없습니다.

  1. gke-system 네임스페이스 내에서 인그레스 게이트웨이를 만들려면 다음 명령어를 실행하여 마이그레이션 스크립트를 시작합니다.

    ./migration-addon.sh --command set-up-asm-ingress
    

    프로세스 중의 터미널 출력은 다음과 비슷하게 표시됩니다.

    Setting up Cloud Service Mesh ingress. Note that the Cloud Service Mesh ingress is not
    serving traffic at this step.
    namespace/gke-system labeled
    deployment.apps/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    Cloud Service Mesh ingress is successfully installed.
    
  2. 다음 명령어를 실행하여 istio-ingrerssgateway 인그레스 게이트웨이가 gke-system 네임스페이스에서 실행되는지 확인합니다.

    kubectl get deployment istio-ingressgateway -n gke-system
    

    istio-ingressgateway 포드 수는 의도적으로 0입니다. Knative serving Fleet 구성요소를 설치한 후에는 모든 트래픽을 Cloud Service Mesh 인그레스로 마이그레이션하는 후속 단계가 있습니다.

다음 단계

Fleet 구성요소 설치

롤백

이전 단계를 통해 수행한 변경사항을 롤백해야 할 경우 마이그레이션 스크립트를 사용하여 다음을 수행할 수 있습니다.

  • Cloud Service Mesh 인그레스 게이트웨이를 삭제합니다.
  • Cloud Service Mesh를 제거합니다.

Cloud Service Mesh 구성 및 설치를 롤백합니다.

  1. 다음 명령어를 실행하여 롤백을 시작합니다.

    ./migration-addon.sh --command rollback-set-up-asm-ingress
    

    프로세스 중의 터미널 출력은 다음과 비슷하게 표시됩니다.

    Deleting Cloud Service Mesh ingress
    deployment.apps "istio-ingressgateway" deleted
    horizontalpodautoscaler.autoscaling "istio-ingressgateway" deleted
    role.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    rolebinding.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    Cloud Service Mesh ingress is successfully deleted.
    
  2. Cloud Service Mesh 인그레스 게이트웨이가 삭제되었는지 확인하려면 istio-ingressgateway 서비스가 gke-system 네임스페이스에 더 이상 없는지 확인합니다.

    kubectl get deployment istio-ingressgateway -n gke-system
    
  3. Cloud Service Mesh 제거

  4. 모든 변경사항을 설치 초기 상태로 계속 롤백하려면 Knative serving 'GKE 부가기능'을 롤백합니다.