Google Cloud 기반 Knative serving을 Fleet으로 업그레이드

이 가이드를 따르면 Cloud Service Mesh에 Fleet을 사용하도록 Google Cloud 기반 Knative serving의 기존 설치를 마이그레이션할 수 있습니다.

'GKE 부가기능'이라고도 하는 이전 Knative serving '무료 체험판' 버전에는 Anthos 1.8부터 더 이상 지원되지 않는 기본 제공되고 축소된 Istio 1.4 버전이 포함되어 있습니다.

Fleet 및 Cloud Service Mesh를 사용하도록 Knative serving 설치를 업그레이드하면 GKE Enterprise 기능 간 향상된 통합 외에도 향상된 제품 업그레이드 및 관리 독립성을 얻을 수 있습니다. 새로운 기능 및 변경사항에 대해 자세히 알아보세요.

설치를 마이그레이션하는 경로는 두 가지입니다.

  • 추천 프로세스는 이전 Knative serving 버전('GKE 부가기능')이 설치된 클러스터에서 Knative serving의 새 Fleet 설치를 설치하고 구성한 새 클러스터로 워크로드를 마이그레이션하는 것입니다. 이 프로세스는 비교적 직관적이고 이상적이지만, 워크로드가 트래픽을 처리하는 경우, 새로 생성된 클러스터로 마이그레이션할 때 다운타임이 발생합니다. 이 마이그레이션 경로를 수행하려면 새 클러스터에서 다음을 수행합니다.

    1. Knative serving을 Fleet 구성요소로 설치합니다.
    2. 새 설치에 서비스를 배포합니다.

      예를 들어 기존 서비스의 버전 배포 안내에 따라 각 서비스의 YAML 구성 파일을 개별적으로 다운로드한 후 각 YAML 파일을 Knative serving의 Fleet 설치에 있는 새 클러스터에 배포할 수 있습니다.

      1. 이전 설치에서 다음 명령어를 실행하여 service.yaml과 같은 YAML 구성 파일을 다운로드할 수 있습니다.

        gcloud run services describe SERVICE --format export > service.yaml

        SERVICE를 Knative serving 서비스의 이름으로 바꿉니다.

      2. 그런 후 Fleet 구성요소 설치에서 다음 명령어를 실행하여 동일한 service.yaml을 배포할 수 있습니다.

        gcloud run deploy service.yaml --cluster CLUSTER_NAME --cluster-location CLUSTER_LOCATION --project PROJECT_ID

        다음과 같이 바꿉니다.

        • CLUSTER_NAME을 Knative serving의 새 Fleet 구성요소 설치에 있는 클러스터의 이름으로 바꿉니다.

        • CLUSTER_LOCATION을 Knative serving의 새 Fleet 구성요소 설치에 있는 클러스터의 영역 또는 리전으로 바꿉니다.

        • PROJECT_ID를 Knative serving의 새 Fleet 구성요소 설치가 있는 Google Cloud 프로젝트의 ID로 바꿉니다.

  • 대안: 새 클러스터를 만들 수 없고 Knative serving의 활성 설치를 마이그레이션해야 하는 사용자의 경우 이 가이드의 단계에 따라 다음을 수행할 수 있습니다.

    • 이전 'GKE 부가기능' 및 Istio 리소스를 삭제합니다.
    • 새 Fleet 리소스를 설치합니다.
    • Cloud Service Mesh를 마이그레이션한 후 트래픽을 마이그레이션합니다.
    • 모든 비활성 및 사용되지 않은 리소스를 삭제합니다.

다음 가이드에서는 GKE Enterprise 1.8 이상의 요구사항을 충족하기 위해 모든 워크로드를 포함하여 Knative serving의 기존 및 활성 설치를 업그레이드하는 대체 과정을 안내합니다.

시작하기 전에

  • 이 업그레이드 프로세스는 이전에 Knative serving을 'GKE 부가기능'으로 설치한 Google Kubernetes Engine 클러스터에서만 수행되어야 합니다.

    Knative serving 설치가 'GKE 부가기능'인지 확인하려면 다음 명령어를 실행합니다.

    gcloud container clusters describe \
    CLUSTER_NAME \
    --region CLUSTER_LOCATION \
    --project PROJECT_ID --format='get(addonsConfig.cloudRunConfig)'

    다음과 같이 바꿉니다.

    • CLUSTER_NAME을 클러스터의 이름으로 바꿉니다.
    • CLUSTER_LOCATION을 클러스터가 있는 위치로 바꿉니다.
    • PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.

    결과:

    • 'GKE 부가기능'이 설치되지 않음:
      • 부가기능이 이전에 설치되지 않은 경우 터미널에 아무 것도 반환되지 않습니다.
      • 부가기능이 이전에 제거된 경우에는 disabled=true가 반환됩니다.
    • 'GKE 부가기능'이 설치됨: 부가 기능이 클러스터에 설치된 경우 부가기능의 구성 세부정보가 반환됩니다. 예를 들면 loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL입니다.
    예:
    다음 예시는 my-addon-cluster 클러스터에 설치된 Knative serving가 외부 트래픽을 처리하도록 구성된 'GKE 부가기능'을 통과하는 것을 보여줍니다.
    gcloud container clusters describe my-addon-cluster \
    --region us-central1-c --project my-gcp-project \
    --format='get(addonsConfig.cloudRunConfig)'

    응답:

    loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL

  • 클러스터, Fleet, Cloud Service Mesh의 요구사항을 충족하는 Google Cloud 프로젝트에 적절한 권한이 있어야 합니다.

    • Google Cloud 프로젝트의 소유자 역할이 있는 경우, 클러스터를 만들고, 설치하고, Knative serving을 구성하는 데 필요한 권한보다 더 많은 권한이 있습니다.

    • Cloud Service Mesh 권한 요구사항도 Knative serving 설치 및 구성을 위한 모든 권한 요구사항을 충족합니다.

    • 기타 역할 및 최소 요구사항 사용:

      또한 조직에 따라 다음 미리 정의된 역할 조합을 통해 권한 요구사항을 충족시킬 수 있습니다.

  • Cloud Service Mesh 버전 1.18만 지원됩니다.

Knative serving 업그레이드 및 워크로드 마이그레이션

기존 Knative serving 설치 업그레이드 및 워크로드 마이그레이션을 돕기 위해 대부분의 단계를 자동화하고 프로세스 전체에서 입력 항목을 알려주는 스크립트를 실행합니다.

  1. 업그레이드 준비 및 환경 설정

  2. GKE 부가기능 제거

  3. Cloud Service Mesh로 마이그레이션

  4. Fleet 구성요소 설치

  5. Cloud Service Mesh로 워크로드 트래픽 마이그레이션

  6. 업그레이드 완료 및 삭제 작업 수행