Dokumen ini menjelaskan cara mengonfigurasi penyaluran Knative yang berjalan di Google Kubernetes Engine (GKE) menggunakan GKE Sandbox untuk workload yang lebih baik isolasi dari {i>kernel<i} {i>host<i}.
Tujuan
- Pelajari cara mengaktifkan GKE Sandbox di cluster penayangan Knative Anda.
- Deploy layanan yang ditentukan untuk dijalankan di node dalam sandbox.
Biaya
Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Sebelum memulai
- Tutorial ini mengasumsikan bahwa Anda memiliki penayangan Knative diinstal dan dikonfigurasi pada cluster Anda.
- Pastikan lingkungan command line Anda sudah disiapkan dan alatnya up-to-date:
Menambahkan node pool GKE Sandbox ke Cluster penyaluran Knative yang ada
Ikuti langkah-langkah untuk menambahkan kumpulan node yang dapat digunakan Sandbox GKE ke cluster penayangan Knative yang ada. Di sinilah workload yang Anda pilih untuk menggunakan GKE Sandbox akan dijalankan.
Men-deploy workload di node pool GKE Sandbox
Setelah Anda memiliki cluster GKE dengan node yang mendukung GKE Sandbox terakhir, perbarui konfigurasi penayangan Knative Anda. Selain itu, update setiap layanan spesifikasi untuk memanfaatkan simpul baru. Pembaruan ini hanya diperlukan satu baik.
Mengaktifkan tombol fitur class runtime
Di bagian ini, Anda akan mengaktifkan class runtime Kubernetes menggunakan Knative
flag fitur dan ekstensi di config-features
ConfigMap di
Namespace knative-serving
. Untuk mengaktifkan class runtime, Anda perlu menetapkan ConfigMap
tandai kubernetes.podspec-runtimeclassname
ke enabled
. Untuk informasi selengkapnya,
lihat runtime Kubernetes
kelas
dan Mengonfigurasi
laporan
di Fitur dan
ekstensi
dokumentasi layanan.
Buka ConfigMap
config-features
untuk mengedit:kubectl edit configmap config-features -n knative-serving
Tambahkan tombol fitur
kubernetes.podspec-runtimeclassname: enabled
ke Kolomdata
.Sebagai alternatif dari langkah sebelumnya, Anda dapat menjalankan perintah berikut untuk mem-patch flag ini ke fitur Knative Anda:
kubectl patch configmap config-features \ --type='json' \ -p="[{'op': 'replace', 'path': '/data/kubernetes.podspec-runtimeclassname', 'value': 'enabled'}]" \ -n knative-serving
Untuk memverifikasi hasil edit, jalankan perintah berikut untuk melihat ConfigMap:
kubectl get configmap config-features -n knative-serving -o yaml
ConfigMap akan terlihat seperti berikut:
apiVersion: v1 kind: ConfigMap metadata: name: config-features namespace: knative-serving labels: serving.knative.dev/release: v0.22.0 data: kubernetes.podspec-runtimeclassname: enabled
Men-deploy Layanan yang dikonfigurasi untuk dijalankan di GKE Sandbox
Setelah mengaktifkan tombol fitur class runtime, Anda dapat membuat Service
yang menentukan runtimeClassName
dalam spesifikasi. Tetapkan runtimeClassName
ke
gvisor
untuk menunjukkan bahwa layanan harus dijalankan di node pool GKE Sandbox.
Men-deploy "Hello World" aplikasi Knative dengan menjalankan berikut:
cat <<EOF | kubectl apply -f - apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go spec: template: spec: runtimeClassName: gvisor containers: - image: gcr.io/knative-samples/helloworld-go env: - name: TARGET value: "gVisor User" EOF
Jika fitur nama class runtime Kubernetes diaktifkan, perintah tersebut harus selesai tanpa kesalahan.
Jalankan pod untuk layanan Anda dan class runtime-nya yang dikonfigurasi dengan berlari:
kubectl get pods \ -o=custom-columns='NAME:.metadata.name,RUNTIME CLASS:.spec.runtimeClassName,STATUS:.status.phase'
Output akan terlihat seperti berikut:
NAME RUNTIME CLASS STATUS helloworld-go-00001-deployment-55f58477f-fxm6m gvisor Running
Langkah selanjutnya
Setelah memverifikasi bahwa Anda dapat men-deploy aplikasi yang tidak tepercaya pada kumpulan node GKE Sandbox yang baru dibuat, Anda siap untuk menambahkan runtimeClassName: gvisor
ke
Spesifikasi Kubernetes untuk layanan tidak tepercaya lainnya yang ingin Anda jalankan
Node pool GKE Sandbox.
Bacaan tambahan:
- Dokumentasi GKE Sandbox dokumen untuk memahami batasan yang dapat merusak kompatibilitas dengan beberapa layanan IT perusahaan mereka.
- Dokumen gVisor tentang cara men-deploy layanan Knative panduan yang lebih terperinci tentang cara men-deploy aplikasi Knative di gVisor (juga yang disebut GKE Sandbox).