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
.
- Pastikan Anda memiliki cluster Autopilot GKE yang menjalankan GKE versi 1.24.1-gke.1400 atau yang lebih baru.
Minta kelas komputasi di Pod Autopilot
Untuk memberi tahu Autopilot agar menempatkan Pod Anda di class komputasi tertentu, tentukan labelcloud.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
- Pelajari arsitektur cluster Autopilot lebih lanjut.
- Pelajari siklus proses Pod.
- Pelajari class komputasi Autopilot yang tersedia.
- Baca permintaan resource default, minimum, dan maksimum untuk setiap platform.