Google Cloud Platform 서비스 브로커(베타, 지원 중단됨)

이 페이지에서는 Google Cloud Platform 서비스 브로커의 개요를 제공합니다.

소개

GCP(Google Cloud Platform) 서비스 브로커는 GPC에 호스팅된 오픈소스 OSB(공개 서비스 브로커) API로 구현됩니다. 이 API는 Kubernetes에서 실행되는 애플리케이션에 GCP 서비스를 간단하게 제공할 수 있게 해줍니다. 서비스 브로커는 GCP 리소스를 만들고 해당 권한을 관리하여 Kubernetes 클러스터 내에서 GCP 서비스를 쉽게 사용할 수 있게 해줍니다. 예를 들어 GKE 클러스터 내에서 Cloud Pub/Sub 서비스 인스턴스를 프로비저닝하고 이를 애플리케이션에 제공할 수 있습니다.

서비스 브로커는 서비스 카탈로그 GKE 부가기능 위에 등록됩니다. 클러스터에 서비스 카탈로그를 설치하고 서비스 브로커를 추가하면 사용 가능한 서비스 및 계획 목록을 다운로드합니다. 이제 계획 인스턴스를 만들고 이러한 인스턴스에 필요한 권한을 할당(결합)할 수 있습니다. 그러면 클러스터에 있는 애플리케이션이 생성된 서비스 인스턴스에 기본 API를 통해 액세스할 수 있습니다. 서비스 브로커를 통해 제공되는 GCP 서비스는 다음과 같습니다.

이러한 각 서비스 예는 Google Cloud Platform GitHub 저장소에서 찾을 수 있습니다.

개념

Google Cloud Platform 서비스 브로커 API에는 여러 OSB 개념이 사용됩니다.

  • 애플리케이션: 서비스 인스턴스를 사용하거나 결합할 수 있는 모든 소프트웨어 부분입니다.
  • 플랫폼: 애플리케이션이 프로비저닝되고 서비스 브로커가 등록되는 클라우드 환경을 관리하는 소프트웨어입니다. 사용자는 서비스 브로커에서 직접 서비스를 프로비저닝하는 대신 플랫폼을 사용해서 서비스를 관리하고 서비스 브로커와 상호작용합니다. Google Cloud Platform 서비스 브로커의 플랫폼은 Kubernetes 서비스 카탈로그입니다.
  • 서비스: Google Cloud Pub/Sub 또는 Spanner와 같은 관리형 소프트웨어 제품입니다. GCP 서비스는 특정 작업 수행을 위해 호출될 수 있는 API를 노출합니다.
  • 서비스 결합: 서비스 인스턴스를 사용할 수 있는 기능입니다. 이 요청은 서비스 인스턴스를 사용하려는 애플리케이션 또는 다른 항목을 나타낼 수 있습니다. Kubernetes 서비스 카탈로그에서는 결합 호출에서 반환되는 정보는 지정된 네임스페이스에 대한 Kubernetes 보안 비밀에 배치됩니다. 서비스 브로커는 일반적으로 결합 만들기 호출을 사용해서 서비스 인스턴스에서 IAM 권한을 설정합니다.
  • 서비스 브로커: 서비스 브로커는 서비스의 수명 주기를 관리합니다. Kubernetes 서비스 카탈로그는 서비스 브로커와 상호작용하여 서비스 인스턴스 및 서비스 결합을 프로비저닝하고 관리합니다.
  • 서비스 인스턴스: 인스턴스화된 서비스 제공입니다.
  • 서비스 제공: 서비스 브로커가 지원하는 서비스 클래스입니다.
  • 서비스 계획: 특정 서비스 제공에 대해 표현된 여러 옵션 또는 계층입니다. 비용에 영향을 줄 수 있습니다.

아키텍처

다음 다이어그램은 OSB 아키텍처 개요를 시각적으로 표시하고, 서비스 인스턴스 및 서비스 결합을 프로비저닝하기 위한 서비스 카탈로그와 서비스 브로커 사이의 흐름을 보여줍니다.

개요

다음 다이어그램은 서비스 브로커의 아키텍처를 보여줍니다.

서비스 카탈로그는 Kubernetes 클러스터에서 실행되는 애플리케이션이 Cloud Pub/Sub와 같은 GCP 서비스를 사용할 수 있게 해주는 Kubernetes 확장 API입니다. 서비스 카탈로그는 서비스 브로커와 통신하여 사용 가능한 서비스 및 계획 목록을 가져오고 이를 서비스 인스턴스로 프로비저닝할 수 있습니다.

서비스 인스턴스에 대한 정보는 ServiceInstanceServiceBinding 리소스에 저장됩니다. 서비스 인스턴스가 프로비저닝된 다음에는 Kubernetes 보안 비밀을 통해 액세스 사용자 인증 정보가 애플리케이션과 공유됩니다.

서비스 및 계획 나열

  1. GCP ClusterServiceBroker 리소스가 서비스 카탈로그에 설치되면 서비스 카탈로그는 서비스 브로커에 연결하여 사용 가능한 서비스 및 계획 목록을 요청합니다.
  2. 서비스 세부정보는 ClusterServiceClass 리소스로 저장되고, 해당 계획은 ClusterServicePlan 리소스에 저장됩니다.

서비스 및 계획을 나열하는 방법에 대한 안내는 GCP 서비스 및 계획 검색을 참조하세요.

서비스 계정 인스턴스 및 결합 흐름

아래 다이어그램은 Cloud IAM 서비스 계정 서비스의 맥락에서 Kubernetes 서비스 카탈로그와 서비스 브로커 사이의 상호작용 순서를 보여줍니다. GCP 리소스에 인증을 수행하기 위해서는 서비스 계정이 필요합니다.

  1. Cloud IAM 서비스 계정의 서비스 인스턴스를 프로비저닝합니다.
  2. GCP가 새로운 서비스 계정을 프로비저닝합니다. 이 시점에서는 권한이 없습니다.
  3. 서비스 브로커가 인스턴스 프로비저닝 응답을 반환합니다. 이 응답은 ServiceInstance 리소스에 저장됩니다.
  4. IAM 서비스 계정 인스턴스에 대한 서비스 결합을 프로비저닝합니다.
  5. GCP가 서비스 계정의 비공개 키를 생성하고 이를 IAM 서비스 계정 인스턴스에 반환합니다.
  6. 서비스 브로커가 IAM 서비스 계정의 비공개 키를 반환하고 ServiceBinding 리소스가 생성됩니다.
  7. 서비스 카탈로그가 서비스 계정의 비공개 키를 지정된 네임스페이스에 있는 보안 비밀에 저장합니다.
  8. 서비스 계정을 결합 호출에 대한 입력으로 사용하여 새 결합을 생성하면 서비스 계정을 사용하여 다른 GCP 리소스에 역할을 할당할 수 있습니다.

GCP 서비스 인스턴스 및 결합 흐름

아래 그림은 서비스 브로커에서 제공되는 다른 GCP 서비스(예: Cloud Pub/Sub)의 맥락에서 서비스 카탈로그와 서비스 브로커 사이의 상호작용 순서를 보여줍니다.

  1. 서비스 계획을 사용해서 서비스 인스턴스를 프로비저닝합니다. 예를 들어 계획 1로 Cloud Pub/Sub 서비스를 프로비저닝할 수 있습니다.
  2. GCP가 프로젝트에서 리소스의 새 인스턴스를 프로비저닝합니다. Cloud Pub/Sub의 경우, GCP가 새 Pub/Sub 항목을 프로비저닝합니다.
  3. 서비스 브로커가 인스턴스 프로비저닝 응답을 반환합니다. 이 응답은 ServiceInstance 리소스에 저장됩니다.
  4. 서비스 계획이 정의한 매개변수를 사용하여 서비스 인스턴스의 서비스 결합을 프로비저닝합니다. Cloud Pub/Sub의 경우, 여기에는 IAM 게시자 또는 구독자 권한이 포함됩니다.

    • 사용할 서비스 계정을 지정합니다.

    • 서비스 계정에 할당할 IAM 역할을 지정합니다.

  5. 서비스 계정에 대한 IAM 권한을 설정합니다. 리소스 유형에 따라 다음 중 하나일 수 있습니다.

    • Spanner 서비스 인스턴스의 경우처럼 리소스 자체에 대한 IAM 권한

    • 리소스 특정 권한을 지원하지 않는 리소스에 대한 프로젝트 수준의 IAM 권한

  6. 서비스 브로커가 서비스의 연결 정보를 반환하고 ServiceBinding 리소스가 생성됩니다.

  7. 서비스 카탈로그가 네임스페이스에서 지정된 보안 비밀에 서비스의 연결 정보를 저장합니다.

  8. 연결 사용자 인증 정보가 포함된 서비스 결합 정보가 Kubernetes 보안 비밀을 사용하여 애플리케이션과 공유됩니다.

  9. 애플리케이션이 결합 정보를 사용하여 Cloud Pub/Sub와 같은 서비스에 연결하고 액세스합니다.

선택사항: 동일 네임스페이스 내에서 다른 서비스 계정 및 다른 역할 집합을 사용해서 동일 서비스 인스턴스에 대해 추가 결합을 만들 수 있습니다. 이러한 방식은 동일 Kubernetes 네임스페이스에 있는 여러 애플리케이션이 동일한 Pub/Sub 항목을 사용할 수 있게 해줍니다.

서비스 인스턴스를 프로비저닝하고 결합하는 방법에 대한 안내는 GCP 서비스 사용을 참조하세요.

프로비저닝 해제 및 삭제 흐름

아래 다이어그램은 더 이상 필요하지 않은 서비스를 프로비저닝 해제하는 방법을 보여줍니다. 더 이상 사용 중이 아닌 서비스 비용이 GCP 계정에 부과되지 않도록 하려면 이 작업을 수행해야 합니다.

  1. 서비스 결합을 삭제합니다. 서비스 카탈로그가 서비스 브로커에 서비스 결합 해제 요청을 전송합니다.
  2. GCP가 서비스 인스턴스에 대한 IAM 권한을 삭제합니다.
  3. 서비스 브로커가 결합 삭제 응답을 반환합니다.
  4. 서비스 결합 및 연결 정보가 포함된 Kubernetes 보안 비밀을 삭제합니다.
  5. 서비스 인스턴스를 삭제합니다. 서비스 카탈로그가 서비스 브로커에 서비스 프로비저닝 해제 요청을 전송합니다.
  6. GCP가 서비스 인스턴스를 삭제합니다. Cloud Pub/Sub의 경우, Pub/Sub 항목을 삭제합니다.
  7. 서비스 브로커가 프로비저닝 해제 응답을 반환합니다.

서비스 인스턴스 및 결합 삭제 방법에 대한 안내는 서비스 카탈로그 삭제를 참조하세요.

다음 단계

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

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

Kubernetes Engine 문서