Envoy로 Cloud Service Mesh 설정 준비

Cloud Service Mesh 설정에는 다음 단계가 포함됩니다.

  1. Traffic Director API 사용 설정과 Compute Engine 사용 시 Cloud DNS 구성을 위한 권한 부여
  2. Envoy 프록시로 애플리케이션 배포
  3. 서비스 메시를 통해 트래픽이 이동하는 방법을 결정하는 서비스 및 라우팅 규칙 만들기

이 문서는 첫 번째 단계에 대해 설명하며 이전 API를 사용하는 경우에 적용됩니다. 두 번째 및 세 번째 단계는 이 문서의 뒷부분에 있는 설정 프로세스 계속에 나열된 플랫폼별 가이드에서 설명됩니다.

이 가이드를 읽기 전에 Cloud Service Mesh 개요를 숙지하세요. 서비스 라우팅 API를 사용하는 경우 서비스 라우팅 API 개요를 참조하세요.

기본 요건

Cloud Service Mesh를 사용하여 가상 머신(VM) 인스턴스, 컨테이너 또는 둘 다에서 애플리케이션과 함께 실행되는 Envoy 프록시를 구성하려는 경우 먼저 다음 태스크를 완료해야 합니다.

  1. 결제를 사용하도록 설정합니다.
  2. Envoy 설치 방법 결정을 결정합니다.
  3. 필수 권한을 부여합니다.
  4. 프로젝트에 Traffic Director API를 사용 설정합니다.
  5. Compute Engine을 사용하는 경우 Cloud DNS API를 사용 설정하고 Cloud DNS를 구성합니다.
  6. Envoy 프록시에서 사용하는 서비스 계정에 Traffic Director API에 액세스할 수 있는 충분한 권한이 있는지 확인합니다.

다음 섹션에서는 각 작업에 대한 안내를 제공합니다.

결제 사용 설정

Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 자세한 내용은 프로젝트의 결제 사용 설정, 사용 중지, 변경을 참조하세요.

Envoy 설치 방법 결정

Cloud Service Mesh를 사용하면 Envoy 프록시를 설치하고 다음과 같은 인프라 레이어를 관리할 수 있습니다.

  • Compute Engine에서는 VM에서 실행되는 애플리케이션에 Envoy를 자동으로 추가할 수 있습니다. Envoy를 설치하는 VM 템플릿을 사용하여 Cloud Service Mesh에 연결하고 VM의 네트워킹을 구성합니다.

  • Google Kubernetes Engine(GKE)에서는 서비스의 포드에 Envoy 사이드카 프록시를 자동으로 추가할 수 있습니다. 클러스터에 Envoy 사이드카 프록시를 추가하고 Cloud Service Mesh에 연결하고 컨테이너의 네트워킹을 구성하는 Envoy 사이드카 인젝터를 설치합니다.

마지막으로 Cloud Service Mesh와 함께 서드 파티 제공업체의 Envoy 배포 솔루션을 사용할 수도 있습니다. 이러한 솔루션의 한 가지 예시로 Envoy 프록시 설치 및 업데이트의 패키지 관리자 기반 접근 방식을 제공하는 GetEnvoy를 들 수 있습니다.

Envoy 버전 관리 정보

Cloud Service Mesh에 사용하려면 Envoy 버전이 1.9.1 이상이어야 합니다. 알려진 보안 취약점을 완화하려면 항상 최신 Envoy 버전을 사용하는 것이 좋습니다.

자동화된 방법 중 하나를 사용하여 Envoy를 배포하는 경우 다음과 같이 작업을 처리합니다.

  • Compute Engine VM에 자동 Envoy 배포를 사용하는 경우 설치된 Envoy 버전은 Cloud Service Mesh와 작동하는 것으로 검증된 버전입니다. 인스턴스 템플릿을 사용하여 새 VM이 생성되면 VM은 검증된 최신 버전을 수신합니다. 장기 실행 VM이 있는 경우 순차적 업데이트를 사용하여 기존 VM을 대체하고 최신 버전을 선택할 수 있습니다.

  • GKE에서 Envoy 사이드카 인젝터를 사용하는 경우 인젝터는 Google이 Cloud Service Mesh와 작동하는 것으로 검증한 최신 버전의 Envoy를 사용하도록 구성됩니다. 사이드카가 워크로드 포드와 함께 삽입되면 이 버전의 Envoy를 수신합니다. 더 최신 버전의 Envoy를 사용하려면 Envoy 사이드카 인젝터를 업데이트하세요.

특정 Envoy 버전에 대한 자세한 내용은 버전 기록을 참조하세요. 보안 취약점에 대한 자세한 내용은 보안 권고를 참조하세요.

필수 IAM 권한 부여

VM 인스턴스를 만들고 Cloud Service Mesh 구성을 위해 네트워크를 수정할 수 있는 충분한 Identity and Access Management(IAM) 권한이 있어야 합니다. Cloud Service Mesh를 사용 설정하려는 프로젝트에 소유자 또는 편집자 프로젝트 역할(roles/owner 또는 roles/editor)이 있으면 올바른 권한이 자동으로 부여됩니다.

그렇지 않으면 다음 표에 표시된 모든 Compute Engine IAM 역할이 있어야 합니다. 이러한 역할이 있는 경우 Compute Engine IAM 문서에 설명된 대로 관련 권한도 갖게 됩니다.

작업 필요한 역할
서비스 계정의 IAM 정책 설정 서비스 계정 관리자
(roles/iam.serviceAccountAdmin)
Cloud Service Mesh를 사용 설정합니다. 서비스 사용량 관리자
(roles/serviceusage.serviceUsageAdmin)
네트워크, 서브넷, 부하 분산기 구성요소 만들기 Compute 네트워크 관리자
(roles/compute.networkAdmin)
방화벽 규칙 추가 및 삭제 Compute 보안 관리자
(roles/compute.securityAdmin)
인스턴스 만들기 Compute 인스턴스 관리자
(roles/compute.instanceAdmin)

GKE 노드 풀 또는 Compute Engine VM에는 https://www.googleapis.com/auth/cloud-platform 범위가 있어야 합니다. 자세한 내용은 Envoy를 사용하는 배포 문제 해결을 참조하세요.

xDS v3를 사용하여 Cloud Service Mesh Envoy 클라이언트에 사용되는 서비스 계정에 roles/trafficdirector.client 역할을 부여합니다.

Traffic Director API 사용 설정

콘솔

  1. Google Cloud 콘솔에서 프로젝트의 API 라이브러리 페이지로 이동합니다.

    API 라이브러리로 이동

  2. API 및 서비스 검색 필드에 Traffic Director를 입력합니다.

  3. 검색결과 목록에서 Traffic Director API를 클릭합니다. Traffic Director API가 표시되지 않으면 Traffic Director API를 사용 설정하는 데 필요한 권한이 없는 것입니다.

  4. Traffic Director API 페이지에서 사용 설정을 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud services enable trafficdirector.googleapis.com

Cloud DNS API 사용 설정 및 Cloud DNS 구성

Compute Engine에서 Cloud Service Mesh를 구성하는 경우 다음 안내를 따르세요. Cloud DNS API를 사용 설정하고 DNS 이름 변환을 위해 Cloud DNS를 구성해야 합니다.

Cloud Service Mesh 및 DNS 변환에 대한 배경 정보는 Cloud Service Mesh 및 DNS 이름 변환을 참조하세요.

먼저 다음 안내에 따라 Cloud DNS API를 사용 설정합니다.

콘솔

  1. Google Cloud 콘솔에서 프로젝트의 API 라이브러리 페이지로 이동합니다.

    API 라이브러리로 이동

  2. API 및 서비스 검색 필드에 DNS를 입력합니다.

  3. 검색 결과 목록에서 Cloud DNS API를 클릭합니다. Cloud DNS API가 표시되지 않으면 Cloud DNS API 사용 설정에 필요한 권한이 없는 것입니다.

  4. Cloud DNS API 페이지에서 사용 설정을 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud services enable dns.googleapis.com

그런 후 Cloud DNS 관리형 비공개 영역을 구성합니다. 비공개 영역 만들기의 안내를 따릅니다.

Traffic Director API에 액세스하도록 서비스 계정 사용 설정

데이터 영역을 설정하고 이를 Cloud Service Mesh에 연결하면 xDS 클라이언트(예: Envoy 프록시)가 trafficdirector.googleapis.com xDS 서버에 연결됩니다. 이러한 xDS 클라이언트는 xDS 서버에 서비스 계정 ID를 제공하여 데이터 영역과 컨트롤 플레인 간의 통신이 제대로 승인되도록 합니다.

  • Compute Engine VM의 경우 xDS 클라이언트는 VM에 할당된 서비스 계정을 사용합니다.
  • GKE의 경우 Workload Identity가 사용 설정되어 있지 않으면 xDS 클라이언트는 기본 GKE 노드에 할당된 서비스 계정을 사용합니다.
  • Workload Identity가 사용 설정되어 있으면 xDS 클라이언트는 포드에 할당된 Kubernetes 서비스 계정과 결합되는 Google 서비스 계정을 사용합니다.

다음 권한이 필요합니다. xDS v3만 지원됩니다. xDS v2를 사용하는 경우 xDS v3로 마이그레이션해야 합니다. 마이그레이션 방법에 대한 자세한 내용은 xDS v2에서 xDS v3로 마이그레이션을 참조하세요.

xDS v3을 사용하는 경우 클라이언트에서 사용되는 서비스 계정에 trafficdirector.networks.reportMetricstrafficdirector.networks.getConfigs 권한이 있어야 합니다. 두 권한을 모두 포괄하는 IAM Cloud Service Mesh 클라이언트 역할(roles/trafficdirector.client)을 사용할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 IAM 및 관리자 페이지로 이동합니다.

    IAM 및 관리자로 이동

  2. 프로젝트를 선택합니다.

  3. 역할을 추가할 서비스 계정을 찾습니다.

    • 서비스 계정이 구성원 목록에 아직 없는 경우 어떠한 역할도 할당되지 않은 것입니다. 추가를 클릭하고 서비스 계정의 이메일 주소를 입력합니다.
    • 서비스 계정이 구성원 목록에 이미 있는 경우 기존 역할이 있는 것입니다. 서비스 계정을 선택하고 역할 탭을 클릭합니다.
  4. 역할을 확장합니다. 수정하려는 서비스 계정에 대해 수정을 클릭합니다.

  5. 기타 > Cloud Service Mesh 클라이언트 역할을 선택합니다.

  6. 서비스 계정에 역할을 적용하려면 저장을 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud projects add-iam-policy-binding PROJECT \
    --member serviceAccount:SERVICE_ACCOUNT_EMAIL \
    --role=roles/trafficdirector.client

다음을 바꿉니다.

  • PROJECT: gcloud config get-value project를 입력합니다.
  • SERVICE_ACCOUNT_EMAIL: 서비스 계정과 연결된 이메일입니다.

설정 프로세스 계속하기

이제 기본 요건 단계를 완료했으므로 서비스 메시 설정을 시작할 수 있습니다.