Dokumen ini menjelaskan cara mengonfigurasi layanan Knative yang berjalan di Google Kubernetes Engine (GKE) untuk menggunakan Sandbox GKE guna meningkatkan isolasi workload dari kernel host.
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 penayangan Knative yang ada. Di sinilah workload yang Anda pilih untuk menggunakan GKE Sandbox dijalankan.
Men-deploy workload di node pool GKE Sandbox
Setelah memiliki cluster GKE dengan node pool yang mendukung GKE Sandbox, perbarui konfigurasi layanan Knative Anda. Selain itu, perbarui setiap spesifikasi layanan untuk menggunakan node baru. Update ini hanya diperlukan satu kali.
Mengaktifkan tombol fitur class runtime
Di bagian ini, Anda akan mengaktifkan class runtime Kubernetes menggunakan fitur Knative dan flag ekstensi di ConfigMap config-features
dalam namespace knative-serving
. Untuk mengaktifkan class runtime, Anda menetapkan tanda
ConfigMap kubernetes.podspec-runtimeclassname
ke enabled
. Untuk mengetahui informasi selengkapnya, lihat class runtime Kubernetes dan Mengonfigurasi flag di dokumentasi Fitur dan ekstensi Knative.
Buka ConfigMap
config-features
untuk mengedit:kubectl edit configmap config-features -n knative-serving
Tambahkan tanda fitur
kubernetes.podspec-runtimeclassname: enabled
ke kolomdata
.Sebagai alternatif untuk langkah-langkah sebelumnya, Anda dapat menjalankan perintah berikut untuk menambal tanda ini ke dalam 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 Anda, 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 berjalan di GKE Sandbox
Setelah mengaktifkan flag 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" EOF
Jika fitur nama class runtime Kubernetes diaktifkan, perintah akan selesai tanpa error.
Dapatkan pod untuk layanan Anda yang sedang 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