Tentang ComputeClass Seimbang dan Penyebaran Skala di cluster Autopilot


Anda dapat menggunakan ComputeClasses Balanced dan Scale-Out di cluster Autopilot Google Kubernetes Engine (GKE) untuk menjalankan workload yang memerlukan kapasitas komputasi tambahan atau konfigurasi CPU khusus. Halaman ini ditujukan bagi administrator cluster yang menginginkan opsi komputasi yang lebih fleksibel daripada yang disediakan oleh konfigurasi cluster Autopilot default.

Ringkasan ComputeClass Seimbang dan Penyebaran Skala

Secara default, Pod di cluster GKE Autopilot berjalan di platform komputasi yang dioptimalkan untuk container. Platform ini ideal untuk workload tujuan umum seperti server web dan tugas batch dengan intensitas sedang. Platform komputasi yang dioptimalkan container menyediakan konfigurasi hardware yang andal, skalabel, dan hemat biaya yang dapat menangani persyaratan sebagian besar workload.

Jika Anda memiliki workload yang memiliki persyaratan hardware unik (seperti menjalankan tugas machine learning atau AI, menjalankan database traffic tinggi secara real-time, atau memerlukan platform dan arsitektur CPU tertentu), Anda dapat menggunakan ComputeClasses untuk menyediakan hardware tersebut.

Khusus di cluster Autopilot, GKE menyediakan ComputeClass pilihan berikut yang memungkinkan Anda menjalankan Pod yang memerlukan fleksibilitas lebih besar daripada platform komputasi yang dioptimalkan untuk container default:

  • Balanced: memberikan kapasitas CPU dan memori maksimum yang lebih tinggi daripada platform komputasi yang dioptimalkan untuk container.
  • Scale-Out: menonaktifkan multi-threading simultan (SMT) dan dioptimalkan untuk penskalaan.

ComputeClass ini hanya tersedia di cluster Autopilot. Serupa dengan platform komputasi yang dioptimalkan untuk container default, Autopilot mengelola penentuan ukuran node dan alokasi resource berdasarkan Pod yang sedang berjalan.

ComputeClass Kustom untuk fleksibilitas tambahan

Jika ComputeClass yang Seimbang atau Skala Luar di cluster Autopilot tidak memenuhi persyaratan workload Anda, Anda dapat mengonfigurasi ComputeClass Anda sendiri. Anda men-deploy resource kustom ComputeClass Kubernetes ke cluster dengan serangkaian atribut node yang digunakan GKE untuk mengonfigurasi node baru di cluster. ComputeClass kustom ini, misalnya, memungkinkan Anda men-deploy workload di hardware yang sama dengan ComputeClass Balanced atau Scale-Out di cluster GKE Autopilot atau Standard mana pun. Untuk mengetahui informasi selengkapnya, lihat Tentang workload mode Autopilot di GKE Standard.

Harga

Pod yang menggunakan ComputeClass Balanced atau Scale-Out ditagih berdasarkan SKU berikut:

Untuk mengetahui informasi selengkapnya, lihat harga GKE.

Detail teknis Balanced dan Scale-Out

Bagian ini menjelaskan jenis mesin dan kasus penggunaan untuk class Balanced dan Scale-Out. Jika Anda tidak meminta ComputeClass di Pod, Autopilot akan menempatkan Pod di platform komputasi yang dioptimalkan untuk container secara default. Terkadang Anda mungkin melihat ek sebagai seri mesin node di node Autopilot yang menggunakan platform komputasi yang dioptimalkan untuk container. Mesin EK adalah jenis mesin E2 yang eksklusif untuk Autopilot.

Tabel berikut memberikan ringkasan teknis tentang Balanced dan Scale-Out ComputeClass.

ComputeClass Seimbang dan Penyebaran Skala
Balanced

Menyediakan kapasitas CPU dan kapasitas memori yang lebih besar daripada jumlah maksimum platform komputasi yang dioptimalkan untuk container. Menyediakan platform CPU tambahan dan kemampuan untuk menetapkan platform CPU minimum untuk Pod, seperti Intel Ice Lake atau yang lebih baru.

  • CPU yang tersedia: AMD EPYC Rome, AMD EPYC Milan, Intel Ice Lake, Intel Cascade Lake
  • Arsitektur yang tersedia: amd64
  • Seri mesin: N2 (CPU Intel) atau seri mesin N2D (CPU AMD).

Gunakan class Balanced untuk aplikasi seperti berikut:

  • Server web
  • Database menengah hingga besar
  • Menyimpan data ke dalam cache
  • Streaming dan penyaluran media
  • Penyimpanan Hyperdisk Throughput dan Extreme
Scale-Out

Menyediakan komputasi thread per core tunggal dan penskalaan horizontal.

  • CPU yang tersedia: Ampere Altra Arm atau AMD EPYC Milan
  • Arsitektur yang tersedia: arm64 atau amd64
  • Seri mesin: T2A (Arm) atau T2D (x86).
  • Fitur tambahan:
    • SMT dinonaktifkan, sehingga satu vCPU setara dengan satu inti fisik.
    • Kecepatan clock maksimum 3,5 GHz.

Gunakan class Scale-Out untuk aplikasi seperti berikut:

  • Server web
  • Microservice dalam container
  • Pemrosesan log data
  • Aplikasi Java skala besar
  • Penyimpanan Hyperdisk Throughput

Pemilihan ComputeClass dalam workload

Untuk menggunakan ComputeClass bagi workload GKE, Anda memilih ComputeClass dalam manifes workload menggunakan pemilih node untuk label cloud.google.com/compute-class.

Contoh manifes Deployment berikut memilih ComputeClass:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloweb
  labels:
    app: hello
spec:
  selector:
    matchLabels:
      app: hello
  template:
    metadata:
      labels:
        app: hello
    spec:
      nodeSelector:
        # Replace with the name of a compute class
        cloud.google.com/compute-class: COMPUTE_CLASS 
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: "250m"
            memory: "4Gi"

Ganti COMPUTE_CLASS dengan nama ComputeClass, seperti Balanced atau Scale-Out. Anda dapat memilih maksimum satu ComputeClass dalam beban kerja.

Saat Anda men-deploy workload, GKE akan melakukan hal berikut:

  • Otomatis menyediakan node yang didukung oleh konfigurasi yang ditentukan untuk menjalankan Pod Anda.
  • Secara otomatis menambahkan label node dan taint ke node baru untuk mencegah Pod lain melakukan penjadwalan di node tersebut. Taint bersifat unik untuk setiap ComputeClass. Jika Anda juga memilih arsitektur CPU, GKE akan menambahkan taint terpisah yang unik pada arsitektur tersebut.
  • Secara otomatis menambahkan toleransi yang sesuai dengan taint yang diterapkan ke Pod yang di-deploy agar GKE dapat menempatkan Pod tersebut di node baru.

Misalnya, jika Anda meminta ComputeClass Scale-Out untuk Pod:

  1. Autopilot akan menambahkan taint khusus untuk Scale-Out untuk node tersebut.
  2. Autopilot akan menambahkan toleransi untuk taint tersebut ke Pod Scale-Out.

Pod yang tidak meminta Scale-Out tidak akan mendapatkan toleransi. Akibatnya, GKE tidak akan menjadwalkan Pod tersebut di node Scale-Out.

Jika Anda tidak secara eksplisit meminta ComputeClass dalam spesifikasi workload, Autopilot akan menjadwalkan Pod di node yang menggunakan platform komputasi yang dioptimalkan untuk container default. Sebagian besar workload tujuan umum dapat berjalan tanpa masalah di platform ini.

Cara meminta arsitektur CPU

Dalam beberapa kasus, workload Anda mungkin dibuat untuk arsitektur tertentu, seperti Arm. ComputeClass Scale-Out mendukung beberapa arsitektur CPU. Anda dapat meminta arsitektur tertentu bersama permintaan ComputeClass dengan menentukan label di pemilih node atau aturan afinitas node, seperti dalam contoh berikut:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-arm
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx-arm
  template:
    metadata:
      labels:
        app: nginx-arm
    spec:
      nodeSelector:
        cloud.google.com/compute-class: COMPUTE_CLASS
        kubernetes.io/arch: ARCHITECTURE
      containers:
      - name: nginx-arm
        image: nginx
        resources:
          requests:
            cpu: 2000m
            memory: 2Gi

Ganti ARCHITECTURE dengan arsitektur CPU yang Anda inginkan, seperti arm64 atau amd64. Anda dapat memilih maksimum satu arsitektur dalam beban kerja Anda. ComputeClass yang Anda pilih harus mendukung arsitektur yang Anda tentukan.

Jika Anda tidak meminta arsitektur secara eksplisit, Autopilot akan menggunakan arsitektur default ComputeClass.

Arsitektur aktif di Autopilot

Autopilot mendukung permintaan untuk node yang menggunakan arsitektur CPU arm. Node Arm lebih hemat biaya dibandingkan node x86 serupa sekaligus memberikan peningkatan performa. Untuk mendapatkan petunjuk tentang cara meminta node Arm, lihat Men-deploy workload Autopilot di arsitektur Arm.

Pastikan Anda menggunakan image yang benar dalam deployment. Jika Pod Anda menggunakan image Arm dan Anda tidak meminta node Arm, Autopilot akan menjadwalkan Pod di node x86 sehingga Pod akan mengalami error. Demikian pula, jika Anda tanpa sengaja menggunakan gambar x86, tetapi meminta node Arm untuk Pod, Pod juga akan mengalami error.

Permintaan resource default, minimum, dan maksimum

Saat memilih ComputeClass untuk workload Autopilot, pastikan Anda menentukan permintaan resource yang memenuhi permintaan minimum dan maksimum untuk ComputeClass tersebut. Untuk mengetahui informasi tentang permintaan default, serta permintaan minimum dan maksimum untuk setiap ComputeClass, lihat Permintaan dan batas resource di GKE Autopilot.

Langkah berikutnya