Aplikasi Terraform Kubernetes di Google Cloud Marketplace memungkinkan pelanggan Anda menggunakan Terraform untuk men-deploy aplikasi dalam container di Google Kubernetes Engine. Pengguna tidak dikenai biaya untuk penggunaan aplikasi Terraform Kubernetes Anda, tetapi mereka dikenai biaya untuk penggunaan Google Cloud resource. Anda dapat menawarkan aplikasi Terraform Kubernetes secara publik kepada semua pengguna Cloud Marketplace, atau secara pribadi menggunakan Penawaran Pribadi.
Aplikasi Terraform Kubernetes yang Anda tawarkan melalui Cloud Marketplace menentukan konfigurasinya menggunakan diagram Helm, yang Anda hosting di Artifact Registry. Setelah itu disiapkan, Anda akan mengaktifkan aplikasi ke Cloud Marketplace melalui Producer Portal.
Sebelum memulai
- Jika Anda baru menawarkan software di Cloud Marketplace, daftar untuk menjadi vendor.
- Untuk listingan pertama (dan semua listingan berikutnya), Anda harus mengisi Formulir Validasi Aktivasi Cloud Marketplace.
- Untuk mendapatkan akses ke Producer Portal, isi Formulir Info Project Cloud Marketplace, yang disediakan oleh tim Cloud Marketplace.
- Tinjau rekomendasi dan batasan kepatuhan open source.
Ringkasan aktivasi aplikasi Terraform Kubernetes
Menawarkan aplikasi Terraform Kubernetes melalui Cloud Marketplace melibatkan langkah-langkah berikut:
Siapkan aplikasi Terraform Kubernetes untuk Cloud Marketplace. Hal ini mencakup menyiapkan Artifact Registry dan mengirim image aplikasi Anda ke sana.
Tambahkan informasi harga untuk aplikasi Anda di Producer Portal.
Konfigurasi deployment aplikasi Anda di Producer Portal, termasuk modul Terraform, diagram Helm chart, dan image container.
Tambahkan label untuk melacak penggunaan resource Google Cloud terkait aplikasi Anda.
Publikasikan aplikasi Anda ke Cloud Marketplace. Saat mengaktifkan aplikasi, Anda akan mengirimkan berbagai bagian aplikasi untuk ditinjau. Tim Cloud Marketplace akan meninjau setiap pengiriman dan bekerja sama dengan Anda untuk menyelesaikan masalah apa pun sebelum menyetujuinya. Setelah semua pengiriman Anda disetujui, Anda dapat memublikasikan dan meluncurkan produk dalam beberapa menit.
Persyaratan khusus produk
Aplikasi Terraform Kubernetes Anda harus memenuhi persyaratan tambahan berikut:
- Aplikasi Anda harus berjalan di node GKE yang menggunakan prosesor x86.
- Semua diagram Helm dan image container aplikasi Anda harus diupload ke registry Artifact Registry, ke repositori dan project yang sama yang Anda gunakan untuk aplikasi Terraform Kubernetes.
- Registry Artifact Registry Anda harus menyertakan diagram Helm.
- Anda harus menambahkan label ke diagram Helm aplikasi untuk melacak penggunaan resource terkait aplikasi Anda. Google Cloud Untuk mengetahui detailnya, lihat Melacak penggunaan terkait aplikasi Kubernetes dengan label.
- Modul Terraform Anda harus dihosting sebagai file ZIP di bucket Cloud Storage yang berada di project yang sama dengan yang Anda gunakan untuk aplikasi Terraform Kubernetes.
- Anda harus mengaktifkan pembuatan versi untuk bucket Cloud Storage yang Anda gunakan untuk menghosting modul Terraform.
- Anda harus menyertakan panduan pengguna, dengan langkah-langkah untuk men-deploy aplikasi dari command line, mengonfigurasi aplikasi, dan menggunakan aplikasi. Untuk mengetahui detailnya, lihat Persyaratan untuk panduan pengguna di dokumen ini.
- Untuk melindungi pengguna dari API yang tidak stabil, gunakan hanya resource Kubernetes beta atau yang tersedia secara umum.
Persyaratan untuk image aplikasi
Image aplikasi Anda harus memenuhi persyaratan berikut:
- Semua image aplikasi Anda harus diberi tag dengan jalur rilis dan versi saat ini. Misalnya, jika Anda merilis versi
2.0.5di jalur rilis2.0, semua image yang sesuai harus diberi tag dengan2.0dan2.0.5. Untuk mengetahui detailnya, lihat Mengatur rilis. Semua image aplikasi Anda harus berisi anotasi berikut dalam manifes image:
com.googleapis.cloudmarketplace.product.service.name=services/SERVICE_NAMEGanti SERVICE_NAME dengan nama layanan Anda (misalnya,
example.endpoints.example-project.cloud.goog). Anda dapat menemukan nama layanan untuk produk Anda di halaman Ringkasan di Producer Portal, di kolom Nama layanan. Untuk mengetahui informasi selengkapnya tentang anotasi, lihat dokumentasi anotasi Open Container Initiative di GitHub.
Persyaratan untuk repositori Artifact Registry
Diagram Helm dan image container aplikasi Anda harus menjadi bagian dari satu repositori Artifact Registry.
Misalnya, jika repositori Artifact Registry Anda adalah us-docker.pkg.dev/exampleproject, diagram Helm dan image container aplikasi Anda akan terlihat seperti berikut:
us-docker.pkg.dev/exampleproject/exampleapp/chartus-docker.pkg.dev/exampleproject/exampleapp/image1us-docker.pkg.dev/exampleproject/exampleapp/image2
Persyaratan untuk modul Terraform
Pelanggan menggunakan modul Terraform untuk men-deploy produk Anda dari Cloud Marketplace melalui Infrastructure Manager. Modul Terraform mengemas konfigurasi Kubernetes aplikasi Anda.
Gunakan modul contoh sebagai titik awal, dan ikuti panduan partner untuk membuat modul Terraform yang kompatibel dengan aplikasi Anda.
Parameter yang diteruskan ke aplikasi Anda
Modul Terraform Anda harus mendeklarasikan parameter yang perlu dikumpulkan dari pelanggan saat mereka memilih aplikasi Anda. Parameter ini kemudian diberikan ke container diagram Helm saat pengguna men-deploy aplikasi.
Untuk mengonfigurasi parameter ini, modul Terraform Anda harus menyertakan file
schema.yaml.
Untuk mempelajari cara membuat schema.yaml, lihat
panduan membuat skema
di GitHub.
Permintaan cluster GPU
Jika aplikasi Anda memiliki kebutuhan GPU tertentu, atau menggunakan banyak GPU, Anda dapat menentukan jenis dan jumlah GPU dalam cluster menggunakan skema deployer. Jika Anda menentukan kebutuhan GPU, Anda akan menonaktifkan pembuatan cluster yang dibantu.
Aplikasi Anda dapat meminta GPU Nvidia generik, atau platform Nvidia tertentu.
Persyaratan untuk panduan pengguna aplikasi
Panduan pengguna aplikasi Anda harus menyertakan informasi berikut:
- Ringkasan: Ringkasan umum aplikasi Anda, yang mencakup fungsi dasar dan opsi konfigurasi. Bagian ini juga harus ditautkan ke aplikasi yang dipublikasikan di Cloud Marketplace.
- Penyiapan satu kali: Hal ini mencakup langkah-langkah untuk mengonfigurasi Helm dan menginstal
Aplikasi
CustomResourceDefinition(CRD) sehingga cluster Anda dapat mengelola resource Aplikasi. - Penginstalan: Hal ini mencakup hal berikut:
- Perintah untuk men-deploy aplikasi Anda
- Meneruskan parameter yang tersedia dalam konfigurasi UI
- Menyematkan referensi image ke ringkasan yang tidak dapat diubah
- Informasi tentang kolom input kustom yang telah Anda tambahkan ke modul Terraform, jika berlaku; lihat petunjuk untuk menambahkan kolom input ke modul Terraform
- Penggunaan Dasar: Panduan untuk tugas berikut:
- Mengubah nama pengguna dan sandi
- Menghubungkan ke konsol admin, jika berlaku
- Menghubungkan alat klien dan menjalankan perintah contoh, jika berlaku
- Mengaktifkan ingress dan menginstal sertifikat TLS, jika berlaku
- Mencadangkan dan memulihkan: Informasi tentang mencadangkan status aplikasi dan memulihkan status aplikasi dari cadangan.
- Update image: Informasi tentang mengupdate image aplikasi untuk patch atau update kecil.
- Penskalaan: Informasi tentang menskalakan aplikasi, jika berlaku.
- Penghapusan: Panduan untuk menghapus aplikasi dan membersihkan resource yang mungkin tersisa, seperti PersistentVolumeClaims.
Model harga untuk aplikasi Terraform Kubernetes
Anda dapat memilih salah satu model harga berikut untuk aplikasi Anda:
- Gratis: Pelanggan hanya membayar the Google Cloud resource yang mereka gunakan.
- Berbasis penggunaan: Pelanggan membayar aplikasi Anda berdasarkan pengukuran yang Anda pilih, yang disebut metrik, seperti jumlah container atau waktu penyimpanan. Jika Anda memilih model harga berbasis penggunaan, aplikasi Anda harus mengukur dan melaporkan informasi penggunaan ke Google.
Setelah memublikasikan aplikasi Terraform Kubernetes dengan harga berbasis penggunaan, Anda dapat memperbarui harga aplikasi. Untuk memperbarui harga aplikasi, setidaknya harus 30 hari sejak Anda memublikasikan aplikasi atau terakhir kali memperbarui harganya.
Harga berbasis penggunaan
Google Cloud Marketplace menggunakan anotasi pod Kubernetes untuk melacak penggunaan dan menagih pelanggan untuk deployment aplikasi Cloud Marketplace. Cloud Marketplace melacak penagihan dan pengukuran di tingkat pod, dan menggabungkannya di tingkat listingan produk.
Jika Anda men-deploy beberapa pod di mesin yang sama (vCPU, GPU, TPU, atau memori), sistem akan menetapkan penggunaan kumulatif yang terjadi di semua pod yang di-deploy di mesin ke setiap pod. Misalnya, jika Anda memiliki tiga pod yang menggunakan GPU yang sama, Cloud Marketplace akan menghitungnya sebagai tiga GPU.
Cloud Marketplace memperlakukan SKU GKE yang berbeda dalam setiap vCPU, TPU, GPU, atau keluarga SKU memori sebagai identik. Misalnya, jika GPU disiapkan sebagai metrik, harga yang dikonfigurasi akan berlaku terlepas dari apakah pelanggan Anda menggunakan GKE Autopilot T4 GPU Premium, GKE Autopilot L4GKE Autopilot H100 GPU Premium, GKE Autopilot A100 40 GiB GPU, GKE Autopilot A100 80 GiB GPU, atau GKE Autopilot H100 GPU Premium.
Sebaiknya integrasikan logika bisnis untuk memastikan penagihan pelanggan yang akurat ke dalam aplikasi Cloud Marketplace Anda. Untuk mengurangi dampak penghapusan anotasi label yang tidak disengaja, sebaiknya desain aplikasi Anda untuk mengonfirmasi secara berkala bahwa anotasi label masih ada. Jika anotasi tidak ada, aplikasi Anda harus membatasi fungsinya hingga label dipulihkan. Untuk contohnya dalam Python, lihat contoh berikut:
pod_name = os.environ.get("HOSTNAME")
namespace = open(
"/var/run/secrets/kubernetes.io/serviceaccount/namespace"
).read()
# Load in-cluster config
config.load_incluster_config()
v1 = client.CoreV1Api()
# Get the Pod object
pod = v1.read_namespaced_pod(name=pod_name, namespace=namespace)
annotations = pod.metadata.annotations
if annotations:
print("Annotations for this pod:")
for key, value in annotations.items():
print(f" {key}: {value}")
else:
print("No annotations found on this pod.")
Langkah berikutnya
- Tinjau persyaratan listingan Cloud Marketplace.
- Siapkan aplikasi Terraform Kubernetes untuk Cloud Marketplace.
- Tambahkan aplikasi Terraform Kubernetes ke Cloud Marketplace menggunakan Producer Portal.