Producer Portal을 통해 Terraform Kubernetes 앱을 온보딩하기 전에 Google Cloud Marketplace용 Google Cloud 환경과 Terraform Kubernetes 앱을 준비하는 것이 좋습니다.
시작하기 전에
Producer Portal에 액세스하려면 Cloud Marketplace 프로젝트 정보 양식을 작성해야 합니다.
작업공간 만들기
Google Cloud 콘솔에서 Cloud Marketplace 제품에 주로 사용할 새 프로젝트를 만들고 프로젝트 ID는 -public
로 끝나는 것이 좋습니다. 자세한 안내는 프로젝트 만들기 및 관리를 참고하세요.
Cloud Marketplace에서 판매할 프로젝트를 이미 설정한 경우 Identity and Access Management (IAM) 역할이 Kubernetes에 올바르게 부여되었는지 확인하고 이 문서의 Artifact Registry 설정으로 바로 건너뜁니다.
Identity and Access Management 역할 부여 및 프로젝트의 보안 담당자 지정
ID 및 액세스 관리 (IAM) 역할을 부여하고 프로젝트의 보안 담당자를 지정하려면 다음 단계를 완료하세요.
프로젝트 수준에서 다음 IAM 역할을 부여합니다.
cloud-commerce-marketplace-onboarding@twosync-src.google.com
에 프로젝트 편집자cloud-commerce-marketplace-onboarding@twosync-src.google.com
및managed-services@cloud-marketplace.iam.gserviceaccount.com
에 Service Management 관리자(roles/servicemanagement.serviceAdmin
)cloud-commerce-producer@system.gserviceaccount.com
에 구성 편집자(roles/servicemanagement.configEditor
)
자세한 내용은 리소스에 대한 액세스 권한 부여, 변경, 취소를 참고하세요.
서비스 수준에서 다음 역할을
cloud-commerce-procurement@system.gserviceaccount.com
에 부여합니다.- 서비스 소비자(
roles/servicemanagement.serviceConsumer
) - 서비스 컨트롤러(
roles/servicemanagement.serviceController
)
서비스 수준에서 액세스 권한을 부여하는 단계는 API에 대한 액세스 권한 부여 및 취소를 참고하세요.
- 서비스 소비자(
보안 연락처를 지정합니다. 자세한 내용은 알림 연락처 관리를 참조하세요.
Artifact Registry 설정
아티팩트 레지스트리를 설정하려면 다음 단계를 완료하세요.
- gcloud CLI를 설치합니다.
기존 설치를 업데이트하려면
gcloud components update
명령어를 실행합니다. 참고: Ubuntu에서 Debian 패키지를 사용하여 gcloud CLI를 설치합니다. gcloud CLI 스냅 패키지에는 gcloud CLI를 사용하여 Artifact Registry로 인증하기 위한kubectl
또는 확장 프로그램이 포함되어 있지 않습니다. - Docker가 아직 설치되어 있지 않으면 설치합니다.
- Artifact Registry에 푸시할 수 있는 Artifact Registry API를 사용 설정합니다.
API 사용 설정 - 스테이징 Artifact Registry 저장소를 만듭니다. 자세한 단계는 Artifact Registry에 Docker 컨테이너 이미지 저장을 참고하세요.
- Artifact Registry 저장소에 보안 스캔을 허용하는 Artifact Analysis를 사용 설정합니다.
- 앱에서 배포하려는 이미지에 태그를 지정하고 스테이징 Artifact Registry 저장소로 푸시합니다.
이미지 태그 지정 및 푸시
이미지에 태그를 지정하고 Artifact Registry에 푸시하려면 다음 단계를 완료하세요.
- Artifact Registry 스테이징 저장소 경로를 선택합니다. 저장소에서 다음 구조를 사용하는 것이 좋습니다.
us-docker.pkg.dev/YOUR_PARTNER_ID/YOUR_SOLUTION_ID
스테이징 저장소는us-docker.pkg.dev
내에 있어야 합니다. Cloud Marketplace는 Terraform Kubernetes 앱에 대해europe-docker.pkg.dev
,gcr.io
,eu.gcr.io
와 같은 다른 리전이나gcr.io
도메인을 지원하지 않습니다. - Producer Portal에서 제품을 만들 때 사용할 스테이징 저장소 경로를 저장하거나 복사합니다.
- Artifact Registry 스테이징 저장소에 푸시하려는 이미지를 빌드합니다.
Docker를 사용하여 이미지에 버전 번호(예:
1.0
)로 태그를 지정합니다.docker tag IMAGE_NAME STAGING_REPO_PATH:VERSION_NUMBER
예를 들어 이 명령어는
docker tag test-image us-docker.pkg.dev/testpartner/testsolution:1.0
일 수 있습니다.gcloud
를 사용하여 이미지를 푸시합니다.gcloud docker push STAGING_REPO_PATH:tag
스테이징 저장소에 추가하려는 추가 태그 또는 이미지에 대해 이전 단계를 반복합니다. 하나의 이미지에 여러 태그를 추가할 수 있습니다.
스테이징 저장소로 이미지를 푸시한다고 해서 사용자에게 이미지가 자동으로 표시되지는 않습니다. 이미지를 게시하면 사용자에게 이미지가 표시됩니다.
Kubernetes Engine에서 개발 클러스터 만들기
Google Kubernetes Engine을 사용하여 Kubernetes 클러스터를 관리하고 확장합니다. 테스트 클러스터를 만들고 여기에 기본 앱을 배포하려면 Google Kubernetes Engine 빠른 시작을 따르세요.
발표곡 정리하기
일반적으로 앱의 모든 버전은 MAJOR.MINOR.PATCH
번호 지정 규칙을 따르는 시맨틱 버전 관리 2.0을 채택해야 합니다. 각 버전에는 1.0.1
, 1.0.2
, 1.3.1
등과 같은 고유한 버전 번호가 있어야 합니다. 선택적으로 출시 전 한정자를 추가하려면 버전 번호 뒤에 대시를 사용합니다(예: 1.3.1-alpha201910
). 출시 전 한정자를 사용하여 버전을 만든 날짜를 나타내는 빌드 날짜와 같이 유용한 추가 정보를 저장하고 강조 표시할 수 있습니다.
트랙에서 소프트웨어를 출시하는 것이 좋습니다. 각 트랙은 이전 버전과의 호환되는 업데이트가 있는 일련의 버전입니다. 출시 트랙은 4.1.x
와 같은 부 버전을 기반으로 해야 합니다. newest
과 같은 일반적인 버전 이름은 사용하지 마세요.
예를 들어 Cloud Marketplace에서 앱 버전 2.0
을 출시하고 버전 2.0.1
, 2.0.5
등이 2.0
과 호환될 것으로 예상되는 경우 2.0
출시 트랙에서 이러한 출시를 구성합니다.
앱의 이전 버전과 호환되지 않는 버전 또는 사용자가 수동 마이그레이션 단계를 수행해야 하는 버전을 출시할 경우에는 새 트랙에서 출시하여 사용자가 업데이트를 계획할 수 있도록 합니다.
Terraform 모듈 래퍼를 만들어 Cloud Storage에 업로드
Cloud Marketplace 사용자가 Terraform Kubernetes 앱을 배포하는 데 사용할 수 있는 Terraform 모듈을 제공해야 합니다. 이 모듈은 Helm 제공자를 사용하여 제공된 Helm 차트를 배포합니다. Terraform Kubernetes 앱과 호환되는 Terraform 모듈을 만드는 단계는 GitHub의 Terraform Kubernetes 파트너 가이드를 참고하세요.
제품 식별자 선택
회사, 제품, 컨테이너 이미지에 다음 식별자를 선택해야 합니다. 이러한 식별자는 Cloud Marketplace URL 및 컨테이너 이미지 URI를 만드는 데 사용됩니다.
- 회사 이름. 예를 들어 회사 이름이 Examplesoft Inc.인 경우
examplesoft
식별자를 사용할 수 있습니다. - 제품 이름. 예를 들어 제품 이름이 Example Pro인 경우
example-pro
식별자를 사용합니다. - 제품의 출시 트랙(예 :
4.0
) 자세한 내용은 이 페이지의 이전 섹션인 출시 버전 구성하기를 참고하세요.
샘플 제품 식별자
예를 들어 Examplesoft Inc. 회사는 해당 제품인 Example Pro에 대해 다음과 같은 식별자를 선택합니다.
이름 | 식별자 | |
---|---|---|
회사 | Examplesoft Inc | examplesoft |
제품 | Example Pro | example-pro |
Helm 차트 | Helm 차트 | 차트 |
이미지 [1] | 데이터베이스 예 | example-db |
이미지 [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
- 프로젝트의 Artifact Registry URI:
us-docker.pkg.dev/examplesoft/example-pro/chart:4.0
us-docker.pkg.dev/examplesoft/example-pro/example-db:4.0
us-docker.pkg.dev/examplesoft/example-pro/example-query:4.0
us-docker.pkg.dev/examplesoft/example-pro/chart:5.0
us-docker.pkg.dev/examplesoft/example-pro/example-db:5.0
us-docker.pkg.dev/examplesoft/example-pro/example-query:5.0
다음 단계
Terraform Kubernetes 앱을 위한 Google Cloud 환경을 설정한 후 다음 단계를 완료하여 게시를 위해 앱을 계속 준비합니다.
- Producer Portal에 Terraform Kubernetes 앱을 추가합니다.
- 앱의 가격 정보 추가
- Helm 차트 및 컨테이너 이미지를 비롯한 앱의 배포를 구성합니다.