고급 부하 분산 설정
이 문서에는 고급 부하 분산 개요에 설명된 고급 부하 분산 옵션을 설정하는 방법이 나와 있습니다. 이 문서는 Cloud Service Mesh 및 부하 분산 개념에 대해 중급 이상의 지식을 갖춘 사용자를 대상으로 작성되었습니다.
시작하기 전에
Google Cloud CLI를 업데이트하여 최신 버전인지 확인합니다.
gcloud components update
새 백엔드 서비스를 만들거나 고급 부하 분산에 사용할 기존 백엔드 서비스를 결정합니다.
hello-world-backend-service
라는 새 백엔드 서비스를 만들려면 다음 명령어를 사용합니다.
gcloud compute backend-services create hello-world-backend-service \ --global \ --protocol=HTTP \ --health-checks hello-world-health-check \ --load-balancing-scheme=INTERNAL_SELF_MANAGED
YAML로 서비스 부하 분산 정책 만들기
YAML 파일에서 서비스 부하 분산 정책을 정의할 수 있습니다. 예를 들어 hello-world-lb-policy
라는 파일에서 다음과 같이 자동 용량 드레이닝 기능을 사용 설정하는 정책을 설정합니다.
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy autoCapacityDrain: enable: True
YAML 파일을 만든 후 가져옵니다.
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
마지막으로 서비스 부하 분산 정책을 백엔드 서비스에 연결합니다.
gcloud compute backend-services update hello-world-backend-service \ --service-lb-policy hello-world-lb-policy \ --global
또는 백엔드 서비스를 만들 때 기존 서비스 부하 분산 정책을 백엔드 서비스와 연결할 수 있습니다.
gcloud compute backend-services create hello-world-backend-service \ --global \ --protocol=HTTP \ --health-checks hello-world-health-check \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --service-lb-policy hello-world-lb-policy
이 안내에서는 백엔드 서비스 리소스의 변경사항만 다룹니다. Cloud Service Mesh 배포에는 상태 점검 및 방화벽 규칙도 포함되어야 하며 필요에 따라 백엔드를 추가해야 합니다.
리전에 분무 알고리즘 구성
한 리전의 모든 영역에 트래픽을 분산하는 리전에 분무 알고리즘을 구성하려면 다음과 같이 hello-world-lb-policy.yaml
파일에서 서비스 부하 분산 정책을 만듭니다.
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy loadBalancingAlgorithm: SPRAY_TO_REGION
yaml 파일 가져오기:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
gcloud CL로 이 알고리즘을 구성할 수도 있습니다.
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=SPRAY_TO_REGION \ --location=global
영역별 폭포 알고리즘 구성
트래픽을 다른 영역으로 스필링하기 전에 로컬 영역으로 트래픽을 전송하는 영역별 폭포 알고리즘을 구성하려면 hello-world-lb-policy.yaml
라는 파일에서 서비스 부하 분산 정책을 만듭니다.
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy loadBalancingAlgorithm: WATERFALL_BY_ZONE
yaml 파일 가져오기:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
gcloud CL로 이 알고리즘을 구성할 수도 있습니다.
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=WATERFALL_BY_ZONE \ --location=global
선호 백엔드 구성
선호하는 백엔드를 구성하려면 다음과 같이 서비스 부하 분산 정책을 만듭니다.
name: projects/${project-id}/locations/global/backendServices/hello-world-service ... backends: ... preference: PREFERRED
다음 예시에서는 3개의 백엔드 MIG1
, MIG2
, MIG3
가 표시됩니다.
name: .. ... - backends name: MIG1 preference: PREFERRED - backends name: MIG2 preference: DEFAULT - backends name: MIG3 ...
gcloud CL로 이 기능 구성할 수도 있습니다.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED \ --global
선호하는 백엔드를 업데이트하려면 다음 안내를 따르세요.
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED
자동 용량 드레이닝 구성
상태에 따라 백엔드를 자동으로 드레이닝하도록 Cloud Service Mesh를 구성하려면 다음과 같이 서비스 부하 분산 정책을 만듭니다.
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy autoCapacityDrain: enable: True
gcloud CL로 이 기능 구성할 수도 있습니다.
gcloud network-services service-lb-policies create capacity-drain-policy \ --auto-capacity-drain \ --location=global
장애 조치 동작 맞춤설정
장애 조치 상태 기준의 특정 값에 대해 Cloud Service Mesh를 구성하려면 서비스 부하 분산 정책에 다음을 포함하고 여기서 VALUE
를 1~99 사이의 값으로 바꿉니다. 기본값은 프록시리스 gRPC를 사용하는 Cloud Service Mesh의 경우 50이고 Envoy를 사용하는 Cloud Service Mesh의 경우 70입니다.
projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy failoverConfig: failoverHealthThreshold: VALUE
gcloud CLI로 장애 조치 동작을 맞춤설정하려면 다음 안내를 따르세요.
gcloud network-services service-lb-policies create failover-health-threshold--policy \ --failover-health-threshold=VALUE \ --location=global