Aplikasi Kubernetes Terraform di Google Cloud Marketplace memungkinkan pelanggan Anda menggunakan Terraform untuk men-deploy aplikasi dalam container di Google Kubernetes Engine. Pengguna Anda tidak dikenai biaya untuk penggunaan aplikasi Terraform Kubernetes, tetapi mereka dikenai biaya untuk penggunaan Google Cloud resource. Anda dapat menawarkan aplikasi Kubernetes Terraform secara publik kepada semua pengguna Cloud Marketplace, atau secara pribadi menggunakan Penawaran Pribadi.
Aplikasi Kubernetes Terraform yang Anda tawarkan melalui Cloud Marketplace menentukan konfigurasinya menggunakan diagram Helm, yang Anda host di Artifact Registry. Setelah penyiapan selesai, Anda akan mengaktifkan aplikasi ke Cloud Marketplace melalui Producer Portal.
Ringkasan proses aktivasi aplikasi Kubernetes Terraform
Menawarkan aplikasi Kubernetes Terraform melalui Cloud Marketplace melibatkan langkah-langkah berikut:
Siapkan aplikasi Kubernetes Terraform untuk Cloud Marketplace. Hal ini termasuk 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, chart Helm, dan image container-nya.
Publikasikan produk Anda ke Cloud Marketplace. Saat mengaktifkan produk, Anda mengirimkan berbagai bagian produk untuk ditinjau. Tim Cloud Marketplace meninjau setiap kiriman dan bekerja sama dengan Anda untuk menyelesaikan masalah apa pun sebelum menyetujuinya. Setelah semua kiriman Anda disetujui, Anda dapat memublikasikan dan meluncurkan produk dalam beberapa menit.
Persyaratan untuk aplikasi Kubernetes Terraform
Semua produk yang Anda tawarkan melalui Cloud Marketplace harus mematuhi persyaratan pencantuman Cloud Marketplace.
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.
- Modul Terraform Anda harus dihosting sebagai file ZIP di bucket Cloud Storage yang berada di project yang sama dengan yang Anda gunakan untuk aplikasi Kubernetes Terraform.
- 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 Anda dalam dokumen ini.
- Untuk melindungi pengguna dari API yang tidak stabil, gunakan hanya resource Kubernetes beta atau yang tersedia secara umum.
Persyaratan untuk gambar aplikasi Anda
Gambar aplikasi Anda harus memenuhi persyaratan berikut:
- Semua gambar aplikasi Anda harus diberi tag dengan jalur rilis dan versi saat ini. Misalnya, jika Anda merilis versi
2.0.5di jalur rilis2.0, semua gambar yang sesuai harus diberi tag2.0dan2.0.5. Untuk mengetahui detailnya, lihat Mengatur rilis Anda. Semua gambar aplikasi Anda harus berisi anotasi berikut dalam manifes gambar:
com.googleapis.cloudmarketplace.product.service.name=services/SERVICE_NAMEGanti SERVICE_NAME dengan nama layanan Anda. Untuk menemukan nama layanan Anda, lihat tabel produk di halaman Overview di Producer Portal. Untuk mengetahui informasi selengkapnya tentang anotasi, lihat dokumentasi Open Container Initiative tentang anotasi di GitHub.
Persyaratan untuk repositori Artifact Registry Anda
Helm chart 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 penampung 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 untuk membuat skema
di GitHub.
Permintaan cluster GPU
Jika aplikasi Anda memiliki kebutuhan GPU tertentu, atau sangat bergantung pada GPU, Anda dapat menentukan jenis dan jumlah GPU di 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 Anda
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: Ini mencakup langkah-langkah untuk mengonfigurasi Helm dan menginstal
CustomResourceDefinitionAplikasi (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 gambar ke ringkasan yang tidak dapat diubah
- Informasi tentang kolom input kustom yang telah Anda tambahkan ke modul Terraform, jika ada; 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 gambar: Informasi tentang cara memperbarui gambar aplikasi untuk patch atau update kecil.
- Penskalaan: Informasi tentang penskalaan aplikasi, jika ada.
- Penghapusan: Panduan untuk menghapus aplikasi dan membersihkan resource yang mungkin masih ada, seperti PersistentVolumeClaims.
Model harga untuk aplikasi Kubernetes Terraform
Anda dapat memilih salah satu model harga berikut untuk aplikasi Anda:
- Gratis: Pelanggan hanya membayar Google Cloud resource yang mereka gunakan.
- Berdasarkan penggunaan: Pelanggan membayar aplikasi Anda berdasarkan pengukuran yang Anda pilih, yang disebut metrik, seperti jumlah penampung atau waktu penyimpanan. Jika Anda memilih model harga berbasis penggunaan, aplikasi Anda harus mengukur dan melaporkan informasi penggunaan ke Google.
Setelah memublikasikan aplikasi Kubernetes Terraform dengan harga berbasis penggunaan, Anda dapat memperbarui harga aplikasi. Untuk memperbarui harga aplikasi, setidaknya 30 hari sudah berlalu sejak Anda memublikasikan aplikasi atau terakhir memperbarui harganya.
Harga berbasis penggunaan
Google Cloud Marketplace menggunakan anotasi pod Kubernetes untuk melacak penggunaan dan menagih pelanggan atas deployment aplikasi Cloud Marketplace Anda. 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 tersebut ke setiap pod. Misalnya, jika Anda memiliki tiga pod yang berbagi GPU yang sama, Cloud Marketplace akan menghitungnya sebagai tiga GPU.
Cloud Marketplace memperlakukan SKU GKE yang berbeda dalam setiap SKU vCPU, TPU, GPU, atau memori sebagai identik. Misalnya, jika GPU disiapkan sebagai metrik, harga yang dikonfigurasi berlaku terlepas dari apakah pelanggan Anda menggunakan GKE Autopilot T4 GPU Premium, GKE Autopilot L4, GKE Autopilot H100 GPU Premium, GKE Autopilot A100 40 GiB GPU, GKE Autopilot A100 80 GiB GPU, atau GKE Autopilot H100 GPU Premium.
Sebaiknya Anda mengintegrasikan logika bisnis untuk memastikan penagihan pelanggan yang akurat ke 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 diaktifkan kembali. Untuk contohnya di 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 Kubernetes Terraform untuk Cloud Marketplace.
- Tambahkan aplikasi Kubernetes Terraform Anda ke Cloud Marketplace menggunakan Producer Portal.