이 가이드를 따르면 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 설치를 설치하고 구성한 새 클러스터로 워크로드를 마이그레이션하는 것입니다. 이 프로세스는 비교적 직관적이고 이상적이지만, 워크로드가 트래픽을 처리하는 경우, 새로 생성된 클러스터로 마이그레이션할 때 다운타임이 발생합니다. 이 마이그레이션 경로를 수행하려면 새 클러스터에서 다음을 수행합니다.
- Knative serving을 Fleet 구성요소로 설치합니다.
새 설치에 서비스를 배포합니다.
예를 들어 기존 서비스의 버전 배포 안내에 따라 각 서비스의 YAML 구성 파일을 개별적으로 다운로드한 후 각 YAML 파일을 Knative serving의 Fleet 설치에 있는 새 클러스터에 배포할 수 있습니다.
이전 설치에서 다음 명령어를 실행하여
service.yaml
과 같은 YAML 구성 파일을 다운로드할 수 있습니다.gcloud run services describe SERVICE --format export > service.yaml
SERVICE를 Knative serving 서비스의 이름으로 바꿉니다.
그런 후 새 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 클러스터에서만 수행되어야 합니다.
'GKE 부가기능'이 설치되었는지 확인합니다.
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 설치 및 구성을 위한 모든 권한 요구사항을 충족합니다.
기타 역할 및 최소 요구사항 사용:
또한 조직에 따라 다음 미리 정의된 역할 조합을 통해 권한 요구사항을 충족시킬 수 있습니다.
Google Cloud 프로젝트 권한: 기본 편집자 역할
Fleet 권한: GKE 허브 관리자 또는 다음 권한이 포함된 역할:
gkehub.features.create
gkehub.features.update
클러스터 권한: Kubernetes Engine 관리자 역할:
- Kubernetes Engine 관리자
- Kubernetes Engine 클러스터 관리자
Cloud Service Mesh 버전 1.18만 지원됩니다.
Cloud Service Mesh를 사용하려면 클러스터에서
e2-standard-4
와 같이 vCPU가 4개 이상 포함된 머신 유형이 사용되어야 합니다. 요구사항에 대한 자세한 내용은 Cloud Service Mesh 설치 가이드를 참조하세요. 기존 클러스터의 머신 유형을 변경하려면 다른 머신 유형으로 워크로드 마이그레이션을 참조하세요.이 프로세스 동안 명령어 및 마이그레이션 스크립트를 실행하는 데에는 Cloud Shell이 권장되는 환경입니다. Cloud Service Mesh 설치 스크립트는 Linux 또는 Cloud Shell만 지원합니다.
기존 Knative serving 설치에서 Istio on GKE 부가기능을 사용하는 경우 Cloud Service Mesh 관리형 제어 영역으로 마이그레이션해야 합니다. 현재 Istio on GKE 부가기능에서 Cloud Service Mesh 클러스터 내 제어 영역으로 마이그레이션할 수 없습니다.
Knative serving 업그레이드 및 워크로드 마이그레이션
기존 Knative serving 설치 업그레이드 및 워크로드 마이그레이션을 돕기 위해 대부분의 단계를 자동화하고 프로세스 전체에서 입력 항목을 알려주는 스크립트를 실행합니다.