리전 클러스터

이 페이지에서는 Google Kubernetes Engine(GKE)에서 리전 클러스터가 작동하는 방식을 설명합니다. 리전 클러스터를 생성하거나 다양한 클러스터 유형에 대해 자세히 알아볼 수 있습니다.

개요

기본적으로 클러스터의 제어 영역(마스터)과 노드는 모두 클러스터를 만들 때 지정한 단일 컴퓨팅 영역에서 실행됩니다. 리전 클러스터는 클러스터의 제어 영역(마스터)과 노드를 리전의 여러 영역에 복제하여 가용성을 높입니다. 이는 멀티 영역 클러스터의 장점을 제공하고 다음과 같은 추가적인 이점도 제공합니다.

  • 리전의 1개 이상(전부는 아님) 영역에서 중단이 발생하는 경우 클러스터의 제어 영역은 하나의 제어 영역 복제본이 남아있는 동안 계속 액세스할 수 있습니다.
  • 클러스터 업그레이드와 같은 클러스터 유지보수 중에는 한 번에 사용 불가능한 제어 영역 복제본이 하나뿐이며 클러스터는 계속 작동합니다.

기본적으로 제어 영역과 각 노드 풀은 리전의 3개 영역에 복제되지만 복제본 수는 맞춤설정할 수 있습니다.

클러스터를 만든 후에는 영역 클러스터, 멀티 영역 또는 리전 클러스터 여부를 수정할 수 없습니다.

리전 클러스터 작동 방법

리전 클러스터는 단일 리전 내의 여러 영역에 클러스터 마스터와 노드를 복제합니다. 예를 들어 us-east1 리전의 리전 클러스터는 제어 영역의 복제본과 us-east1-b, us-east1-c, us-east1-d라는 3개 us-east1 영역의 노드를 만듭니다. 인프라 중단 시에도 워크로드가 계속 실행되고 수동으로 또는 클러스터 자동 확장 처리를 사용해서 노드 균형이 조정될 수 있습니다.

리전 클러스터를 사용할 때의 이점은 다음과 같습니다.

  • 단일 영역 오류 회복력. 리전 클러스터는 리전 내 단일 영역이 아니라 리전에서 사용할 수 있습니다. 단일 영역을 사용할 수 없게 되어도 Kubernetes 제어 영역과 리소스는 영향을 받지 않습니다.
  • 다운타임이 없는 마스터 업그레이드, 마스터 크기 조절, 마스터 오류로 인한 다운타임 감소. 리전 클러스터는 가용성이 높은 제어 영역을 제공하므로 업그레이드 중에도 제어 영역에 액세스할 수 있습니다.

제한사항

  • 기본적으로 리전 클러스터는 한 리전의 3개 영역에 고르게 분산된 9개 노드로 구성됩니다. 여기에는 9개의 IP 주소가 사용됩니다. 필요에 따라 영역별 노드 수를 1개까지 줄일 수 있습니다. 새로 생성된 Google Cloud 계정에는 리전별로 IP 주소가 8개만 부여되므로 리전 클러스터의 크기에 따라 사용 중인 리전 IP 주소의 할당량 상향을 요청해야 할 수 있습니다. 사용 중인 IP 주소가 너무 적으면 클러스터 만들기가 실패합니다.

  • GPU를 실행하는 리전 클러스터의 경우 3개 영역에 GPU가 있는 리전을 선택하거나 --node-locations 플래그를 사용하여 영역을 지정해야 합니다. 그러지 않으면 다음과 같은 오류가 표시될 수 있습니다.

    ERROR: (gcloud.container.clusters.create) ResponseError: code=400, message=
      (1) accelerator type "nvidia-tesla-k80" does not exist in zone us-west1-c.
      (2) accelerator type "nvidia-tesla-k80" does not exist in zone us-west1-a.
    

    GPU를 사용할 수 있는 리전 및 영역의 전체 목록은 Compute Engine의 GPU를 참조하세요.

  • 클러스터 영역 외부의 영역에는 노드 풀을 만들 수 없습니다. 하지만 클러스터 영역을 변경하여 모든 신규 및 기존 노드가 해당 영역에 분산되도록 할 수 있습니다.

가격 책정

리전 클러스터를 사용하려면 프로젝트의 리전 할당량이 유사한 영역 또는 멀티 영역 클러스터보다 더 많이 필요합니다. 리전 클러스터를 사용하려면 먼저 할당량과 GKE 가격 책정을 이해해야 합니다. Insufficient regional quota to satisfy request for resource 오류가 발생하면 요청이 현재 리전에서 사용 가능한 할당량을 초과한 것입니다.

또한 영역 사이의 노드 간 트래픽 비용이 청구됩니다. 예를 들어 한 영역에서 실행 중인 워크로드가 다른 영역의 워크로드와 통신해야 하는 경우 교차 영역 트래픽 비용이 발생합니다. 자세한 내용은 Compute Engine 가격 책정 페이지의 동일한 리전에 있는 영역 간 이그레스(GB당)를 참조하세요.

리전 클러스터의 영구 스토리지

영구 스토리지 디스크는 영역 리소스입니다. 클러스터에 영구 스토리지를 추가할 때 영역을 지정하지 않으면 GKE가 단일 영역에 디스크를 할당합니다. GKE는 영역을 무작위로 선택합니다. StatefulSet를 사용할 때는 각 복제본에 대해 프로비저닝된 영구 디스크가 영역 간에 분산됩니다.

영구 디스크가 프로비저닝된 다음에는 디스크를 참조하는 모든 pod가 디스크와 동일한 영역에 예약됩니다.

읽기/쓰기 영구 디스크는 여러 노드에 연결할 수 없습니다.

리전 클러스터 자동 확장

클러스터 자동 확장 처리를 사용하여 리전 클러스터의 노드 풀을 자동으로 확장할 때는 다음 사항을 고려합니다.

또한 리전 클러스터의 자동 확장 한도 또는 클러스터 자동 확장 처리로 영역 간 균형이 조정되는 방법에 대해 자세히 알아볼 수 있습니다.

확장 한도 초과 프로비저닝

드물지만 영역 실패가 발생했을 때 용량을 유지하기 위해 일부 영역을 사용할 수 없을 때도 최소한의 가용성이 보장되도록 GKE에서 확장 한도를 초과 프로비저닝할 수 있습니다.

예를 들어 3개 영역 클러스터를 150%(50% 초과 용량) 초과 프로비저닝할 경우 클러스터 용량의 1/3이 손실되어도 트래픽 100%를 사용 가능한 영역으로 라우팅할 수 있습니다. 위 예시에서는 영역당 최대 노드 수를 4개가 아닌 6개로 지정하여 이러한 결과를 얻을 수 있습니다. 하나의 영역이 실패하면 클러스터가 남은 영역의 12개 노드로 확장됩니다.

마찬가지로, 2개 영역 클러스터를 200% 초과 프로비저닝하면 클러스터 용량의 절반이 손실되어도 트래픽 100%를 다시 라우팅할 수 있습니다.

Kubernetes 문서에서 클러스터 자동 확장 처리에 대해 자세히 알아보거나 자동 확장에 대한 FAQ를 참조하세요.

다음 단계