Memilih kelas komputasi untuk Pod Autopilot


Dokumen ini menunjukkan cara memilih class komputasi tertentu untuk menjalankan workload yang memiliki persyaratan hardware unik di cluster Autopilot Google Kubernetes Engine (GKE). Sebelum membaca dokumen ini, pastikan Anda memahami konsep class komputasi di Autopilot GKE.

Ringkasan kelas komputasi Autopilot

Autopilot menawarkan kelas komputasi yang dirancang untuk menjalankan workload yang memiliki persyaratan hardware tertentu. Kelas komputasi ini berguna untuk workload seperti tugas machine learning dan AI, atau menjalankan database traffic tinggi secara real-time.

Kelas komputasi ini adalah subset dari rangkaian mesin Compute Engine, dan menawarkan fleksibilitas di luar kelas komputasi tujuan umum default untuk Autopilot. Misalnya, kelas Scale-Out menonaktifkan multi-threading secara bersamaan sehingga setiap vCPU adalah satu inti fisik.

Berdasarkan kebutuhan Pod masing-masing, Anda dapat mengonfigurasi Pod Autopilot reguler atau Pod Spot untuk meminta node yang didukung oleh kelas komputasi ini. Anda juga dapat meminta arsitektur CPU tertentu, seperti Arm, di kelas komputasi yang mendukung arsitektur tersebut.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.

Minta kelas komputasi di Pod Autopilot

Untuk memberi tahu Autopilot agar menempatkan Pod Anda di class komputasi tertentu, tentukan label cloud.google.com/compute-class di nodeSelector atau aturan afinitas node, seperti dalam contoh berikut:

nodeSelector

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-app
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: hello-app
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          nodeSelector:
            cloud.google.com/compute-class: "COMPUTE_CLASS"
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            resources:
              requests:
                cpu: "2000m"
                memory: "2Gi"
    

Ganti COMPUTE_CLASS dengan nama class komputasi berdasarkan kasus penggunaan Anda, seperti Scale-Out. Jika memilih Accelerator, Anda juga harus menentukan GPU yang kompatibel. Untuk petunjuknya, lihat Men-deploy workload GPU di Autopilot. Jika memilih Performance, Anda juga harus memilih seri mesin Compute Engine di pemilih node. Untuk mengetahui petunjuknya, lihat Menjalankan workload intensif CPU dengan performa optimal.

nodeAffinity

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-app
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: hello-app
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          terminationGracePeriodSeconds: 25
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            resources:
              requests:
                cpu: "2000m"
                memory: "2Gi"
                ephemeral-storage: "1Gi"
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                - matchExpressions:
                  - key: cloud.google.com/compute-class
                    operator: In
                    values:
                    - "COMPUTE_CLASS"
      

Ganti COMPUTE_CLASS dengan nama class komputasi berdasarkan kasus penggunaan Anda, seperti Scale-Out. Jika memilih Accelerator, Anda juga harus menentukan GPU yang kompatibel. Untuk petunjuknya, lihat Men-deploy workload GPU di Autopilot. Jika memilih Performance, Anda juga harus memilih seri mesin Compute Engine di pemilih node. Untuk mengetahui petunjuknya, lihat Menjalankan workload intensif CPU dengan performa optimal.

Anda juga dapat meminta kelas komputasi tertentu untuk Pod Spot.

Menentukan permintaan resource

Saat memilih kelas komputasi, pastikan Anda menentukan permintaan resource untuk Pod berdasarkan Permintaan resource minimum dan maksimum untuk kelas yang dipilih. Jika permintaan Anda kurang dari jumlah minimum, Autopilot akan melakukan penskalaan otomatis pada permintaan Anda. Namun, jika permintaan Anda lebih besar dari maksimum, Autopilot tidak akan men-deploy Pod Anda dan akan menampilkan pesan error.

Memilih arsitektur CPU

Beberapa kelas komputasi mendukung beberapa arsitektur CPU. Misalnya, kelas Scale-Out mendukung arsitektur Arm dan x86. Jika Anda tidak meminta arsitektur tertentu, Autopilot akan menyediakan node yang memiliki arsitektur default dari kelas komputasi yang ditentukan. Jika Pod Anda perlu menggunakan arsitektur yang berbeda, minta arsitektur tersebut di pemilih node atau aturan afinitas node, bersama permintaan kelas komputasi Anda. Kelas komputasi yang Anda minta harus mendukung arsitektur CPU yang Anda tentukan.

Untuk memahami petunjuk, lihat Men-deploy Pod Autopilot pada arsitektur Arm.

Langkah berikutnya