Halaman ini menjelaskan cara men-deploy layanan baru dan revisi baru ke Penyajian Knative.
Sebelum memulai
Untuk menggunakan Google Cloud CLI, Anda harus terlebih dahulu menyiapkan dan mengonfigurasi alat command line.
Menghubungkan ke cluster GKE
Sebelum Anda dapat men-deploy layanan ke penyaluran Knative, Anda harus login ke dan terhubung ke cluster GKE Anda.
Untuk informasi selengkapnya tentang cara menghubungkan ke cluster GKE Anda, termasuk opsi tambahan, lihat:
Izin yang diperlukan untuk men-deploy
Anda memerlukan izin untuk membuat, memperbarui, dan menghapus di
apiGroup serving.knative.dev
dan jenis Service
, dan selain itu, Anda harus memiliki
SALAH SATU peran Identity and Access Management berikut:
Gambar yang dapat di-deploy
Tidak ada batas ukuran yang berlaku untuk image container yang dapat Anda deploy.
Anda dapat menggunakan container dari container registry apa pun, seperti Docker Hub. Untuk mengetahui informasi tentang yang men-deploy image pribadi dari registry yang berbeda dengan Container Registry atau Artifact Registry, lihat Men-deploy image container pribadi dari registry container lainnya.
Men-deploy layanan baru
Anda dapat menentukan image penampung dengan tag (misalnya, gcr.io/my-project/my-image:latest
) atau dengan ringkasan yang tepat (misalnya, gcr.io/my-project/my-image@sha256:41f34ab970ee...
).
Revisi pertama akan dibuat saat Anda men-deploy ke layanan untuk pertama kalinya. Perlu diperhatikan bahwa revisi tidak dapat diubah. Jika Anda men-deploy dari tag image container, tag tersebut akan di-resolve menjadi ringkasan dan revisi akan selalu menyalurkan ringkasan khusus ini.
Anda dapat men-deploy container menggunakan konsol Google Cloud, yaitu Google Cloud CLI atau dari file konfigurasi YAML.
Klik tab untuk mendapatkan petunjuk cara menggunakan alat pilihan Anda.
Konfigurasi lokasi gcloud
default
Jika sebelumnya Anda telah mengonfigurasi lokasi di
Konfigurasi default
Google Cloud CLI, perintah gcloud
Anda menggunakan nilai tersebut secara default, termasuk:
compute/region
compute/zone
run/cluster
run/cluster_location
run/platform
run/region
Jalankan perintah berikut
Perintah konfigurasi gcloud
guna melihat setelan Anda untuk konfigurasi default
:
gcloud config configurations describe default
Konsol
Untuk men-deploy image container:
Buka penyaluran Knative di Konsol Google Cloud:
Klik Create service untuk menampilkan halaman Create service.
Di dalam formulir:
Dari menu {i>dropdown<i}, pilih salah satu dari GKE untuk layanan Anda.
Masukkan nama layanan yang diinginkan. Nama layanan harus unik sesuai region dan project atau per cluster. Nama layanan tidak dapat diubah nanti.
Di bagian Konektivitas:
- Pilih Internal jika Anda ingin membatasi akses hanya untuk pengguna lain Layanan atau layanan penayangan Knative di cluster Anda yang menggunakan Istio.
- Pilih Eksternal untuk mengizinkan akses eksternal ke layanan Anda
Perhatikan bahwa Anda dapat mengubah opsi konektivitas kapan saja, karena yang dijelaskan dalam Mengubah setelan konektivitas layanan.
Klik Berikutnya untuk melanjutkan ke halaman kedua pembuatan layanan formulir.
Di dalam formulir:
Di kotak teks Container image URL, berikan URL gambar dari registry yang didukung, misalnya:
us-docker.pkg.dev/cloudrun/container/hello:latest
Atau, klik Tampilkan Setelan Lanjutan, lalu klik untuk mengatur tab:
Klik Create untuk men-deploy image ke inferensi Knative, lalu tunggu hingga deployment selesai.
Anda baru saja men-deploy layanan ke cluster yang telah mengaktifkan layanan Knative.
Command line
Untuk men-deploy image container:
Jalankan perintah
gcloud run deploy
:gcloud run deploy SERVICE --image IMAGE_URL
Ganti SERVICE dengan nama layanan yang ingin Anda di-deploy. Jika layanan yang ditentukan tidak ada, layanan baru akan dibuat.
Ganti IMAGE_URL dengan referensi ke image container, contohnya,
gcr.io/cloudrun/hello
.Opsi deployment tambahan:
Untuk men-deploy ke namespace selain default, Anda harus menentukan namespace itu dengan menggunakan
--namespace
.Untuk men-deploy ke lokasi selain konfigurasi default, Anda harus menentukan
name
danlocation
cluster dengan Parameter--cluster
dan--cluster-location
:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Anda dapat mengatur opsi konektivitas dengan tanda
--connectivity
sebagai dijelaskan dalam Mengubah setelan konektivitas layanan untuk menentukan akses internal atau eksternal.Untuk inferensi Knative di VMware, Anda harus menyertakan
--kubeconfig
dan tentukan file konfigurasi Anda:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Tunggu hingga deployment selesai. Setelah berhasil diselesaikan, pesan berhasil akan ditampilkan beserta URL layanan yang di-deploy.
YAML
Anda dapat menyimpan spesifikasi layanan dalam file YAML
, lalu
men-deploy-nya menggunakan Google Cloud CLI.
Buat file
service.yaml
baru dengan konten ini:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE
Ganti
- SERVICE dengan nama layanan penayangan Knative Anda
- IMAGE dengan URL image container Anda.
Anda juga dapat menentukan konfigurasi lainnya seperti variabel lingkungan, atau batas memori.
Deploy layanan baru menggunakan perintah berikut:
gcloud run services replace service.yaml
Men-deploy revisi baru dari layanan yang ada
Anda dapat men-deploy revisi baru menggunakan Google Cloud Console, command line gcloud
,
atau file konfigurasi YAML.
Perhatikan bahwa mengubah setelan konfigurasi akan menyebabkan pembuatan revisi baru, meskipun tidak ada perubahan pada image container. Setiap revisi yang dibuat tidak dapat diubah.
Klik tab untuk mendapatkan petunjuk cara menggunakan alat pilihan Anda.
Konsol
Untuk men-deploy revisi baru dari layanan yang sudah ada:
Buka penyaluran Knative di Konsol Google Cloud:
Temukan layanan yang ingin Anda update dalam daftar layanan, lalu klik untuk membuka detail layanan tersebut.
Klik EDIT & DEPLOY NEW REVISION. Tindakan ini akan menampilkan deployment revisi bentuk:
Jika diperlukan, berikan URL ke image container baru yang ingin Anda deploy.
Secara opsional, tetapkan:
Untuk mengirim semua traffic ke revisi baru, centang kotak berlabel Segera tayangkan revisi ini. Untuk meluncurkan revisi baru secara bertahap, hapus centang pada kotak tersebut: tindakan ini akan menghasilkan deployment yang tidak memiliki traffic dikirim ke revisi yang baru--ikuti petunjuk untuk peluncuran bertahap setelah Anda melakukan deployment.
Klik DEPLOY dan tunggu hingga deployment selesai.
Command line
Untuk men-deploy image container:
Jalankan perintah
gcloud run services update
:gcloud run services update SERVICE --image IMAGE_URL
- Akhiran revisi secara otomatis ditetapkan untuk setiap revisi. Jika Anda ingin menentukan akhiran revisi Anda sendiri, tambahkan --revision-suffix .
Ganti SERVICE dengan nama layanan yang ingin Anda di-deploy. Jika layanan yang ditentukan tidak ada, layanan baru akan dibuat.
Ganti IMAGE_URL dengan referensi ke image container, contohnya,
gcr.io/cloudrun/hello
.Opsi deployment tambahan:
Untuk men-deploy ke namespace selain default, Anda harus menentukan namespace itu dengan menggunakan
--namespace
.Untuk men-deploy ke lokasi selain konfigurasi default, Anda harus menentukan
name
danlocation
cluster dengan Parameter--cluster
dan--cluster-location
:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Anda dapat mengatur opsi konektivitas dengan tanda
--connectivity
sebagai dijelaskan dalam Mengubah setelan konektivitas layanan untuk menentukan akses internal atau eksternal.Untuk inferensi Knative di VMware, Anda harus menyertakan
--kubeconfig
dan tentukan file konfigurasi Anda:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Tunggu hingga deployment selesai. Setelah berhasil diselesaikan, pesan berhasil akan ditampilkan beserta URL layanan yang di-deploy.
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke
YAML dengan perintah gcloud run services describe
menggunakan
Tanda --format=export
.
Anda kemudian dapat memodifikasi
file YAML itu dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
Download konfigurasi layanan Anda menjadi file bernama
service.yaml
pada ruang kerja lokal:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama Anda Layanan penyaluran Knative.
Di file lokal Anda, perbarui setelan revisi di setiap penayang turunan dari
spec.template
.Deploy revisi baru:
gcloud run services replace service.yaml
Men-deploy image dari project Google Cloud lainnya
Anda dapat men-deploy image container dari project Google Cloud lainnya jika Anda menetapkan izin IAM yang benar:
Di konsol konsol Google Cloud, buka project untuk Layanan penyaluran Knative.
Mendapatkan info akun layanan Anda:
Untuk cluster di Google Cloud, salin email akun layanan default Compute Engine. Kolom ini memiliki akhiran @developer.gserviceaccount.com
Untuk cluster lainnya, buat akun layanan Google Cloud dan download kredensial. Tambahkan kredensial ini sebagai
imagePullSecrets
default dari Akun Layanan Kubernetes.
Buka project yang memiliki container registry yang ingin Anda gunakan.
Klik Add untuk menambahkan akun utama baru.
Di kotak teks New principals, tempel alamat email akun layanan yang telah Anda salin sebelumnya.
Pada daftar dropdown Pilih peran, pilih peran yang akan dibaca dari {i>registry<i}:
- Artifact Registry, termasuk Repositori gcr.io di Artifact Registry: Artifact Registry -> Pembaca Artifact Registry
- Container Registry: Storage -> Storage Object Viewer
Deploy image container ke project yang berisi layanan penyaluran Knative Anda.
Untuk keamanan yang lebih kuat, Anda dapat membatasi pemberian akses:
- Artifact Registry: Berikan peran pada repositori yang menyimpan image container.
- Container Registry: Memberikan peran pada Bucket Cloud Storage yang menyimpan image container Anda.
Men-deploy image container pribadi dari registry container lainnya
Bagian ini menjelaskan penyiapan izin yang benar untuk men-deploy image container dari registry pribadi arbitrer ke inferensi Knative. Container registry pribadi memerlukan kredensial untuk mengakses image container. Perhatikan bahwa Anda tidak perlu mengikuti langkah-langkah ini untuk men-deploy container pribadi image dari Container Registry (Tidak digunakan lagi) atau Artifact Registry di project yang sama dengan cluster Anda.
Agar dapat men-deploy image container pribadi, Anda harus membuat image
Ketikkan rahasia Kubernetes pada imagePullSecret
dan kaitkan dengan akun layanan:
Buat rahasia
imagePullSecret
bernamacontainer-registry
:kubectl create secret docker-registry container-registry \ --docker-server=DOCKER_REGISTRY_SERVER \ --docker-email=REGISTRY_EMAIL \ --docker-username=REGISTRY_USER \ --docker-password=REGISTRY_PASSWORD
- Ganti DOCKER_REGISTRY_SERVER dengan pribadi Anda FQDN registry (mis.: https://gcr.io/ untuk Container Registry atau https://hub.docker.com untuk DockerHub).
- Ganti REGISTRY_EMAIL dengan email Anda.
Ganti REGISTRY_USER dengan container registry Anda nama pengguna.
Jika Anda menggunakan Container Registry atau Artifact Registry dan ingin menyimpan dan mengambil kredensial jangka panjang, alih-alih meneruskan token akses berumur pendek, lihat Metode autentikasi: File kunci JSON.
Ganti REGISTRY_PASSWORD dengan container registry Anda {i>password<i}.
Buka akun layanan default Anda:
kubectl edit serviceaccount default --namespace default
Setiap namespace di cluster Kubernetes Anda memiliki akun layanan default bernama
default
. Akun layanan default ini digunakan untuk mengambil image container Anda kecuali ditentukan sebaliknya ketika Anda men-deploy layanan penyaluran Knative Anda.Tambahkan rahasia
imagePullSecret
yang baru dibuat ke layanan default Anda akun:imagePullSecrets: - name: container-registry
Akun layanan Anda sekarang akan terlihat seperti ini:
apiVersion: v1 kind: ServiceAccount metadata: name: default namespace: default ... secrets: - name: default-token-zd84v # The secret we just created: imagePullSecrets: - name: container-registry
Sekarang, pod baru yang dibuat di namespace default
saat ini akan memiliki
Rahasia imagePullSecret
ditentukan.
Men-deploy dengan injeksi file bantuan otomatis diaktifkan
Untuk men-deploy layanan Anda dengan injeksi file bantuan Istio diaktifkan, lihat injeksi file bantuan otomatis diaktifkan dalam dokumentasi Cloud Service Mesh.
Men-deploy layanan di jaringan internal
Untuk men-deploy layanan di jaringan internal, Anda harus menyiapkan jaringan internal pribadi.
Langkah selanjutnya
Setelah men-deploy layanan baru, Anda dapat melakukan hal berikut:
- Peluncuran bertahap, revisi rollback, migrasi traffic
- Melihat log layanan
- Memantau performa layanan
- Konfigurasi layanan Anda. Misalnya, menetapkan batas memori, menetapkan variabel lingkungan, atau mengubah konkurensi.
- Kelola:
Anda dapat mengotomatiskan build dan deployment inferensi Knative Anda layanan Cloud Build menggunakan Pemicu Cloud Build: