지역 클러스터

이 페이지에서는 지역 클러스터의 작동 방법을 설명합니다. 지역 클러스터를 만드는 방법을 알아보려면 클러스터 만들기를 참조하세요.

개요

기본적으로 클러스터는 개발자가 생성 시 지정하는 단일 컴퓨팅 영역에 클러스터 마스터와 해당 노드를 만듭니다. 지역 클러스터를 만들어서 클러스터의 가용성 및 복구성을 향상시킬 수 있습니다.

지역 클러스터는 전체 클러스터의 단일 정적 엔드포인트를 제공하고 클러스터 포드를 지정된 지역의 여러 영역으로 분산합니다. 그 결과 전체는 아니더라도 하나 이상의 개별 영역이 포함된 중단 또는 다운타임 중에도 클러스터의 제어 영역에 액세스할 수 있습니다.

지역 클러스터는 지역 내 여러 영역에 Kubernetes 리소스를 배포합니다. 지역 클러스터의 마스터 및 노드는 여러 영역에 걸쳐 분산됩니다. 기본 마스터 수, 영역별 기본 노드 수, 포함된 기본 영역 수는 모두 3개이지만, 적절한 클러스터 크기 및 영역 개수를 얻기 위해 이 숫자를 줄이거나 늘릴 수 있습니다.

개발자는 클러스터를 만들 때 클러스터를 영역 또는 지역으로 설정할지 여부를 결정합니다. 기존 영역 클러스터를 지역 클러스터로 전환하거나 그 반대로 전환하는 것은 불가능합니다.

제한사항

  • 기본적으로 지역 클러스터는 한 지역의 세 개 영역에 고르게 분산된 9개 노드로 구성됩니다. 여기에는 9개의 IP 주소가 사용됩니다. 필요에 따라 영역별 노드 수를 1개까지 줄일 수 있습니다. 새로 생성된 Google Cloud Platform 계정에는 영역별로 IP 주소가 8개만 부여되므로, 지역 클러스터의 크기에 따라 사용되는 지역 IP 주소에 대해 할당량 증가를 요청해야 할 수 있습니다. 사용되는 IP 주소가 너무 적으면 클러스터 만들기가 실패합니다.
  • GPU를 실행하는 지역 클러스터의 경우, 현재까지는 3개 영역에서 GPU 유형을 포함하는 지역이 없습니다. 지역 클러스터에서 GPU를 실행하려면 --node-locations 플래그를 사용하여 영역을 지정해야 합니다.

    3개 영역에 걸쳐진 GPU 클러스터를 만들려고 시도하면 다음과 같은 오류가 반환됩니다.

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

가격 책정

지역 클러스터는 추가 비용 없이 제공됩니다.

지역 클러스터를 사용하기 위해서는 프로젝트의 지역 할당량 이상이 필요합니다. 지역 클러스터를 사용하려면 먼저 자신의 할당량과 Google Kubernetes Engine 가격을 이해해야 합니다. Insufficient regional quota to satisfy request for resource 오류가 발생하면 요청이 현재 지역에서 사용 가능한 할당량을 초과했기 때문입니다.

또한 영역 사이의 노드 간 트래픽 비용이 청구됩니다. 예를 들어 한 영역에 있는 서비스가 다른 영역의 서비스와 통신해야 할 경우, 영역 간 네트워크 트래픽 비용이 청구됩니다. 자세한 내용은 Compute Engine 가격 책정 페이지에서 '동일 지역의 영역 간 송신(GB당)' 가격을 참조하세요.

지역 클러스터 작동 방법

지역 클러스터는 단일 지역 내의 여러 영역 간에 클러스터 마스터와 노드를 복제합니다. 예를 들어 us-east1 지역의 지역 클러스터는 모두 3개의 us-east1 영역인 us-east1-b, us-east1-c, us-east1-d에 마스터와 노드를 만듭니다. 그 결과 리소스 가용성을 보장하고 영역 다운타임으로부터 클러스터를 보호할 수 있습니다. 단일 영역이 실패하더라도 지역 클러스터와 해당 리소스는 실패하지 않습니다. 인프라 중단의 경우에도 지역 제어 영역이 사용 가능한 상태로 유지되고 수동으로 또는 클러스터 자동 확장 처리를 사용해서 노드 균형을 조정할 수 있습니다.

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

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

지역 클러스터의 영구 저장소

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

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

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

지역 클러스터 자동 확장

클러스터 자동 확장 처리를 사용하여 지역 클러스터를 자동으로 확장할 수 있습니다. 다음 섹션에서는 지역 클러스터에 클러스터 자동 확장 처리를 사용할 때의 몇 가지 고려 사항을 보여줍니다.

확장 제한 초과 프로비저닝

드물지만 영역 실패가 발생했을 때 용량을 유지하기 위해서는 확장 제한을 과도하게 프로비저닝할 수 있습니다.

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

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

클러스터 자동 확장 처리에 대한 자세한 내용은 클러스터 자동 확장 처리 문서 또는 Kubernetes 문서의 자동 확장 FAQ를 참조하세요.

자동 확장 제한

지역 클러스터의 자동 확장 제한에 대해 알아보려면 자동 확장 제한을 참조하세요.

영역 간 균형 조정

클러스터 자동 확장 처리가 여러 영역 간 클러스터 크기를 균형 조정하는 방식은 영역 간 균형 조정을 참조하세요.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Kubernetes Engine