Dokumen ini menjelaskan cara mengonfigurasi Knative serving yang berjalan di Google Kubernetes Engine (GKE) untuk menggunakan GKE Sandbox guna meningkatkan isolasi workload dari kernel host.
Tujuan
- Pelajari cara mengaktifkan GKE Sandbox di cluster Knative serving.
- Men-deploy layanan yang ditentukan untuk berjalan di node sandbox.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloud yang dapat ditagih berikut Google Cloud:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Sebelum memulai
- Tutorial ini mengasumsikan bahwa Anda telah menginstal dan mengonfigurasi Knative serving di cluster.
- Pastikan lingkungan command line Anda telah disiapkan dan alatnya sudah yang terbaru:
Menambahkan node pool GKE Sandbox ke Cluster Knative serving yang ada
Ikuti langkah-langkah untuk menambahkan node pool yang diaktifkan untuk menggunakan GKE Sandbox ke cluster Knative serving yang ada. Di sinilah workload yang Anda pilih untuk menggunakan GKE Sandbox berjalan.
Men-deploy workload di node pool GKE Sandbox
Setelah memiliki cluster GKE dengan node pool yang mengaktifkan GKE Sandbox, perbarui konfigurasi Knative serving Anda. Selain itu, perbarui setiap spesifikasi layanan untuk memanfaatkan node baru. Pembaruan ini hanya diperlukan satu kali.
Mengaktifkan tombol fitur class runtime
Di bagian ini, Anda akan mengaktifkan class runtime Kubernetes menggunakan tombol fitur dan ekstensi Knative di ConfigMap config-features di namespace knative-serving. Untuk mengaktifkan class runtime, Anda menetapkan tombol ConfigMap kubernetes.podspec-runtimeclassname ke enabled. Untuk mengetahui informasi selengkapnya,
lihat Class runtime
Kubernetes
dan Mengonfigurasi
tombol
di dokumentasi Fitur dan
ekstensi
Knative.
Buka ConfigMap
config-featuresuntuk mengedit:kubectl edit configmap config-features -n knative-servingTambahkan tombol fitur
kubernetes.podspec-runtimeclassname: enabledke kolomdata.Sebagai alternatif untuk langkah-langkah sebelumnya, Anda dapat menjalankan perintah berikut untuk menambal tombol ini ke fitur Knative:
kubectl patch configmap config-features \ --type='json' \ -p="[{'op': 'replace', 'path': '/data/kubernetes.podspec-runtimeclassname', 'value': 'enabled'}]" \ -n knative-servingUntuk memverifikasi hasil edit Anda, jalankan perintah berikut untuk melihat ConfigMap:
kubectl get configmap config-features -n knative-serving -o yamlConfigMap 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 berjalan di GKE Sandbox
Setelah mengaktifkan tombol fitur class runtime, Anda dapat membuat Layanan yang menentukan runtimeClassName dalam spesifikasi. Tetapkan runtimeClassName ke gvisor untuk menunjukkan bahwa layanan harus berjalan di node pool GKE Sandbox.
Deploy aplikasi Knative "Hello World" dengan menjalankan perintah 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" EOFJika fitur nama class runtime Kubernetes diaktifkan, perintah akan selesai tanpa error.
Dapatkan pod untuk layanan Anda yang berjalan dan class runtime yang dikonfigurasi dengan menjalankan:
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 berikutnya
Setelah memverifikasi bahwa Anda dapat men-deploy aplikasi yang tidak tepercaya di node pool GKE Sandbox yang baru dibuat, Anda siap menambahkan runtimeClassName: gvisor ke spesifikasi Kubernetes untuk layanan tidak tepercaya lainnya yang ingin Anda jalankan di node pool GKE Sandbox.
Bacaan tambahan:
- Dokumen GKE Sandbox untuk memahami batasan yang dapat merusak kompatibilitas dengan beberapa layanan.
- Dokumen gVisor tentang men-deploy layanan Knative untuk panduan yang lebih mendetail tentang men-deploy aplikasi Knative di gVisor (juga disebut GKE Sandbox).