Google Cloud 환경 설정

이 페이지에서는 Kubernetes 앱을 배포할 수 있도록 Google Cloud 환경을 설정하는 단계를 설명합니다.

작업공간 만들기

Google Cloud 콘솔에서 Cloud Marketplace 제품에 주로 사용할 새 프로젝트를 만드는 것이 좋습니다.

Cloud Marketplace에 제출하는 제품을 관리하려면 -public으로 끝나는 프로젝트 ID를 사용하여 새 프로젝트를 만드는 것이 좋습니다. 제품에 대해 프로젝트를 만들려면 프로젝트 만들기 및 관리를 참조하세요.

사용할 Cloud Marketplace에서 판매할 프로젝트를 이미 설정한 경우 Identity and Access Management(IAM) 역할이 Kubernetes에 올바르게 부여되었는지 확인하고 Container Registry 설정으로 건너뜁니다.

프로젝트에 대한 역할 부여

프로젝트 설정을 완료하려면 다음 단계를 완료하세요.

  1. 프로젝트를 만든 후 프로젝트 수준에서 다음 역할을 부여합니다.

    • cloud-commerce-marketplace-onboarding@twosync-src.google.com에 프로젝트 편집자
    • cloud-commerce-marketplace-onboarding@twosync-src.google.commanaged-services@cloud-marketplace.iam.gserviceaccount.com에 Service Management 관리자(roles/servicemanagement.serviceAdmin)
    • cloud-commerce-producer@system.gserviceaccount.com에 구성 편집자(roles/servicemanagement.configEditor)

    프로젝트에 대한 액세스 권한을 부여하려면 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.

  2. 서비스 수준에서 다음 역할을 cloud-commerce-procurement@system.gserviceaccount.com에 부여합니다.

    • 서비스 소비자(roles/servicemanagement.serviceConsumer)
    • 서비스 컨트롤러(roles/servicemanagement.serviceController)

    서비스 수준에서 액세스 권한을 부여하는 단계는 API에 대한 액세스 권한 부여 및 취소를 참조하세요.

  3. 보안 연락처를 설정합니다. 자세한 내용은 알림 연락처 관리를 참조하세요.

  4. Cloud Marketplace팀에서 제공하는 프로젝트 정보 양식을 작성합니다.

Container Registry 설정

앱의 컨테이너 이미지를 호스팅하려면 Container Registry 저장소가 필요합니다. Artifact Analysis가 계속해서 앱 이미지의 취약점을 스캔해 주므로 제품을 Cloud Marketplace에 제출하기 전에 문제를 검토하고 해결할 수 있습니다.

Container Registry, Docker, Google Cloud SDK를 설정하려면 Container Registry 빠른 시작을 따르세요.

Container Registry를 설정한 후 레지스트리가 포함된 프로젝트에서 cloud-commerce-marketplace-onboarding@twosync-src.google.com에 프로젝트 뷰어 역할을 부여합니다.

Container Analysis API 사용 설정

Container Registry에서 컨테이너 이미지의 취약점을 스캔하는 Artifact Analysis API를 사용 설정해야 합니다. Artifact Analysis의 취약점 스캔에 대한 개요는 Container Registry 문서를 참조하세요.

Cloud Marketplace에 제품 추가

Cloud Marketplace에서 제품을 만들고 게시하려면 Producer Portal을 사용합니다. Cloud Marketplace 제품 정보 양식을 작성하면 파트너 엔지니어가 자동으로 이를 사용 설정합니다.

Producer Portal에서 제품을 게시하려면 제품 항목을 만든 후 다음 정보를 검토용으로 제출합니다.

  • 제품 세부정보: 제품의 목록 정보 및 마케팅 정보를 추가합니다.
  • 가격 책정: 가격 책정 모델을 지정하고 선택하여 고객이 제품 요금을 지불할 방법을 결정합니다.
  • 컨테이너 이미지: 컨테이너 이미지가 포함된 Google Container Registry 저장소를 제공합니다.
  • 오픈소스 규정 준수: 제품이 Google의 오픈소스 소프트웨어 정책을 준수하는지 확인합니다.

이러한 검토는 언제든지 원하는 순서로 제출할 수 있습니다. 검토하는 데 최대 2주가 걸릴 수 있으므로 최대한 일찍 요구사항을 검토하고 시작하는 것이 좋습니다.

제품의 Cloud Marketplace 항목을 만들려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Producer Portal을 엽니다.

    https://console.cloud.google.com/producer-portal?project=YOUR_PUBLIC_PROJECT_ID
    

    YOUR_PUBLIC_PROJECT_ID를 Cloud Marketplace에 만든 공개 프로젝트의 ID로 바꿉니다(예: my-organization-public).

  2. 페이지 위에서 제품 추가를 클릭합니다.

  3. Kubernetes를 선택합니다.

  4. 제품 이름 아래에서 제품 이름을 지정하고 제품 ID를 확인합니다. 제품 ID는 Cloud Marketplace 목록의 URL에 사용됩니다.

  5. 만들기를 클릭합니다. 제품을 만들려면 몇 초 정도 걸릴 수 있습니다.

이후 단계에서 솔루션의 가격 책정 모델 및 마케팅 정보를 추가합니다.

Kubernetes Engine에서 개발 클러스터 만들기

Google Kubernetes Engine을 사용하여 Kubernetes 클러스터를 관리하고 확장합니다. 테스트 클러스터를 만들고 여기에 기본 앱을 배포하려면 Google Kubernetes Engine 빠른 시작을 따르세요.

mpdev 개발자 도구를 설치합니다.

mpdev 도구는 앱 이미지를 테스트하고 게시하기 위해 유틸리티를 번들로 제공하는 컨테이너입니다. mpdev을 설치할 때 출시할 앱을 제출할 필요는 없지만 mpdev을 실행하여 개발 환경을 검증하고 앱이 개발 클러스터에 올바르게 설치되는지 테스트 할 수 있습니다.

Cloud Marketplace 도구 GitHub 저장소에서 mpdev를 설치합니다.

mpdev을 사용하여 환경을 확인하고 앱을 테스트하는 방법에 대한 자세한 내용은 GitHub의 mpdev 참조를 참조하세요.

출시 구성

일반적으로 앱의 모든 버전은 MAJOR.MINOR.PATCH 번호 지정 규칙을 따르는 시맨틱 버전 관리 2.0을 채택해야 합니다. 모든 버전에는 1.0.1, 1.0.2, 1.3.1 등과 같은 고유한 버전 번호가 있어야 합니다. 선택적으로 버전 번호 뒤에 하이픈을 추가하여 1.3.1-alpha201910 같은 출시 전 한정자를 추가합니다. 출시 전 한정자는 버전을 만든 날짜를 나타내는 빌드 날짜와 같이 유용한 추가 정보를 저장하고 강조 표시하는 데 사용할 수 있습니다.

트랙에서 소프트웨어를 출시하는 것이 좋습니다. 각 트랙은 이전 버전과의 호환되는 업데이트가 있는 일련의 버전입니다. 출시 트랙은 4.1.x와 같은 부 버전을 기반으로 해야 합니다. 가장 좋은 방법은 latest와 같은 일반적인 버전 이름을 사용하지 않는 것입니다.

예를 들어 Cloud Marketplace에서 소프트웨어 버전 2.0을 출시하고 버전 2.0.1, 2.0.5 등이 2.0과 호환될 것으로 예상되는 경우 2.0 출시 트랙에서 이러한 출시 버전을 구성합니다.

앱의 이전 버전과 호환되지 않는 버전 또는 사용자가 수동 마이그레이션 단계를 수행해야 하는 버전을 출시할 경우에는 새 트랙에서 출시하여 사용자가 업데이트를 계획할 수 있도록 합니다.

제품 식별자 선택

회사, 제품, 컨테이너 이미지에 다음 식별자를 선택해야 합니다. 이러한 식별자는 Cloud Marketplace URL 및 컨테이너 이미지 URI를 만드는 데 사용됩니다.

  • 회사 이름. 예를 들어 회사 이름이 Examplesoft Inc.인 경우 examplesoft 식별자를 사용할 수 있습니다.

  • 제품 이름. 예를 들어 제품 이름이 Example Pro인 경우 example-pro 식별자를 사용합니다.

  • 제품의 출시 트랙(예 : 4.0)

    출시 구성 요구사항을 참조하세요.

  • 컨테이너 이미지. 앱에서 각 컨테이너 이미지에 대해 고유한 식별자를 선택합니다. 다음 식별자는 모든 앱에 필요합니다.

    • 기본 이미지: 이 컨테이너 이미지는 제품의 기본 이미지이며, 제품과 동일한 식별자를 사용합니다. 예를 들어 제품 식별자가 example-pro인 경우 기본 이미지는 동일한 식별자를 사용합니다.
    • deployer: 트랙에 대한 배포 컨테이너 이미지입니다. 배포 컨테이너는 사용자가 Google Cloud 콘솔에서 앱을 배포할 때 실행됩니다. 앱 패키지를 만들 때 배포 이미지를 만듭니다.

예를 들어 Examplesoft Inc. 회사는 해당 제품인 Example Pro에 대해 다음과 같은 식별자를 선택합니다.

이름 식별자
회사 Examplesoft Inc examplesoft
제품 Example Pro example-pro
이미지 [1](기본) Example Pro 서버 해당 사항 없음
이미지 [2] Example Queue example-queue
이미지 [배포자] 해당 사항 없음 배포자
출시 트랙 [1] 버전 4.x.x 4.0
출시 트랙 [2] 버전 5.x.x 5.0

이러한 식별자에 대해서는 다음 정보가 자동으로 생성됩니다.

  • Cloud Marketplace의 제품 URL: https://console.cloud.google.com/marketplace/details/examplesoft/example-pro

  • 컨테이너 이미지 URI:

    • marketplace.gcr.io/examplesoft/example-pro:4.0
    • marketplace.gcr.io/examplesoft/example-pro/example-queue:4.0
    • marketplace.gcr.io/examplesoft/example-pro/deployer:4.0
    • marketplace.gcr.io/examplesoft/example-pro:5.0
    • marketplace.gcr.io/examplesoft/example-pro/example-queue:5.0
    • marketplace.gcr.io/examplesoft/example-pro/deployer:5.0