Aman Dengan GKE Sandbox


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. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Sebelum memulai

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.

  1. Buka ConfigMap config-features untuk mengedit:

    kubectl edit configmap config-features -n knative-serving
    
  2. Tambahkan tombol fitur kubernetes.podspec-runtimeclassname: enabled ke Kolom data.

  3. 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
    
  4. 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.

  1. 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.

  2. 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: