Google Cloud Marketplace의 Terraform Kubernetes 앱을 사용하면 고객이 Terraform을 사용하여 Google Kubernetes Engine에 컨테이너화된 앱을 배포할 수 있습니다. 사용자의 Terraform Kubernetes 앱 사용량에 대해서는 요금이 청구되지 않지만 Google Cloud 리소스 사용량에 대해서는 요금이 청구됩니다. Terraform Kubernetes 앱을 모든 Cloud Marketplace 사용자에게 공개적으로 제공하거나 프라이빗 오퍼를 사용하여 비공개로 제공할 수 있습니다.
Cloud Marketplace를 통해 제공하는 Terraform Kubernetes 앱은 Artifact Registry에 호스팅하는 Helm 차트를 사용하여 구성을 정의합니다. 설정이 완료되면 Producer Portal을 통해 앱을 Cloud Marketplace에 온보딩합니다.
Terraform Kubernetes 앱 온보딩 개요
Cloud Marketplace를 통해 Terraform Kubernetes 앱을 제공하는 단계는 다음과 같습니다.
Cloud Marketplace용 Terraform Kubernetes 앱을 준비합니다. 여기에는 Artifact Registry 설정과 앱 이미지를 여기에 푸시하는 작업이 포함됩니다.
Producer Portal에서 앱의 가격 책정 정보를 추가합니다.
Producer Portal에서 앱의 배포를 구성합니다. 여기에는 Terraform 모듈, Helm 차트, 컨테이너 이미지가 포함됩니다.
Cloud Marketplace에 제품을 게시합니다. 제품을 온보딩할 때 제품의 다양한 부분을 검토용으로 제출합니다. Cloud Marketplace팀에서 제출된 각 항목을 검토하고 승인하기 전에 발견된 문제를 함께 해결합니다. 모든 제출 항목이 승인되면 몇 분 안에 제품을 게시하여 시작할 수 있습니다.
Terraform Kubernetes 앱 요구사항
Cloud Marketplace를 통해 제공하는 모든 제품은 Cloud Marketplace 등록 요구사항을 준수해야 합니다.
Terraform Kubernetes 앱은 다음 추가 요구사항을 충족해야 합니다.
- 앱은 x86 프로세서를 사용하는 GKE 노드에서 실행해야 합니다.
- 앱의 모든 Helm 차트와 컨테이너 이미지를 Terraform Kubernetes 앱에 사용하는 것과 동일한 저장소 및 프로젝트의 Artifact Registry 레지스트리에 업로드해야 합니다.
- Artifact Registry 레지스트리에 Helm 차트가 포함되어 있어야 합니다.
- Terraform 모듈은 Terraform Kubernetes 앱에 사용하는 것과 동일한 프로젝트에 있는 Cloud Storage 버킷에 ZIP 파일로 호스팅되어야 합니다.
- Terraform 모듈을 호스팅하는 데 사용하는 Cloud Storage 버킷에 버전 관리를 사용 설정해야 합니다.
- 명령줄에서 앱을 배포하고, 앱을 구성하고, 앱을 사용하기 위한 단계를 사용자 가이드에 포함해야 합니다. 자세한 내용은 이 문서의 사용자 가이드 요구사항을 참고하세요.
- 불안정한 API로부터 사용자를 보호하려면 베타 또는 일반 공개된 Kubernetes 리소스만 사용하세요.
앱 이미지 요구사항
앱 이미지는 다음 요구사항을 충족해야 합니다.
- 앱의 모든 이미지에는 출시 트랙과 현재 버전으로 태그가 지정되어야 합니다. 예를 들어
2.0
출시 트랙에서2.0.5
버전을 출시하는 경우 모든 해당 이미지에2.0
및2.0.5
태그가 지정되어야 합니다. 자세한 내용은 출시 구성하기를 참고하세요. 앱의 모든 이미지에는 이미지 매니페스트에 다음 주석이 포함되어야 합니다.
com.googleapis.cloudmarketplace.product.service.name=services/SERVICE_NAME
SERVICE_NAME를 서비스 이름으로 바꿉니다. 서비스 이름을 확인하려면 Producer Portal의 개요 페이지에 있는 제품 표를 참고하세요. 주석에 관한 자세한 내용은 GitHub의 Open Container Initiative 주석 문서를 참고하세요.
Artifact Registry 저장소 요구사항
앱의 Helm 차트와 컨테이너 이미지는 단일 Artifact Registry 저장소에 속해야 합니다.
예를 들어 Artifact Registry 저장소가 us-docker.pkg.dev/exampleproject
인 경우 앱의 Helm 차트와 컨테이너 이미지는 다음과 같아야 합니다.
us-docker.pkg.dev/exampleproject/exampleapp/chart
us-docker.pkg.dev/exampleproject/exampleapp/image1
us-docker.pkg.dev/exampleproject/exampleapp/image2
Terraform 모듈 요구사항
고객은 Terraform 모듈을 사용하여 Infrastructure Manager를 통해 Cloud Marketplace에서 제품을 배포합니다. Terraform 모듈은 앱의 Kubernetes 구성을 패키징합니다.
예시 모듈을 시작점으로 사용하고 파트너 가이드에 따라 앱과 호환되는 Terraform 모듈을 빌드하세요.
앱에 전달되는 매개변수
Terraform 모듈은 고객이 앱을 선택할 때 고객으로부터 수집해야 하는 매개변수를 선언해야 합니다. 그런 다음 이러한 매개변수는 사용자가 앱을 배포할 때 Helm 차트 컨테이너에 제공됩니다.
이러한 매개변수를 구성하려면 Terraform 모듈에 schema.yaml
파일이 포함되어 있어야 합니다.
schema.yaml
를 만드는 방법을 알아보려면 GitHub의 스키마 만들기 가이드를 참고하세요.
GPU 클러스터 요청
앱에 특정 GPU 요구사항이 있거나 GPU가 많이 사용되는 경우 배포자 스키마를 사용하여 클러스터의 GPU 유형과 수를 지정할 수 있습니다. GPU 요구 사항을 지정하면 지원 클러스터 생성이 중지됩니다.
앱에서 일반 Nvidia GPU 또는 특정 Nvidia 플랫폼을 요청할 수 있습니다.
앱의 사용자 가이드 요구사항
앱의 사용자 가이드에는 다음 정보가 포함되어야 합니다.
- 개요: 기본 기능 및 구성 옵션이 포함된 앱의 일반 개요입니다. 이 섹션은 또한 Cloud Marketplace에 게시된 앱에 연결되어야 합니다.
- 일회성 설정: 여기에는 클러스터가 애플리케이션 리소스를 관리할 수 있도록 Helm을 구성하고 애플리케이션
CustomResourceDefinition
(CRD)을 설치하는 단계가 포함됩니다. - 설치: 여기에는 다음이 포함됩니다.
- 앱 배포를 위한 명령어
- UI 구성에서 사용 가능한 매개변수 전달
- 변경 불가능한 다이제스트에 대한 이미지 참조 고정
- Terraform 모듈에 추가한 맞춤 입력 필드에 관한 정보(해당하는 경우). Terraform 모듈에 입력 필드를 추가하는 방법을 참고하세요.
- 기본 사용: 다음 작업에 관한 가이드
- 사용자 이름 및 비밀번호 수정
- 관리 콘솔에 연결(해당되는 경우)
- 클라이언트 도구 연결 및 샘플 명령어 실행(해당되는 경우)
- 수신 사용 설정 및 TLS 인증서 설치(해당되는 경우)
- 백업 및 복원: 앱 상태 백업 및 백업에서 앱 상태 복원에 관한 정보입니다.
- 이미지 업데이트: 패치 또는 소규모 업데이트를 위한 앱 이미지 업데이트에 관한 정보입니다.
- 확장: 앱 확장 관련 정보(해당하는 경우)
- 삭제: 앱을 삭제하고 PersistentVolumeClaims와 같이 남아 있을 수 있는 리소스를 정리하는 가이드입니다.
다음 단계
- Cloud Marketplace 등록정보 요구사항을 검토합니다.
- Cloud Marketplace용 Terraform Kubernetes 앱을 준비합니다.
- Producer Portal을 사용하여 Cloud Marketplace에 Terraform Kubernetes 앱을 추가합니다.