Memilih platform CPU minimum


Halaman ini menunjukkan cara menentukan platform CPU minimum untuk node di cluster Google Kubernetes Engine (GKE).

Mengapa memilih platform CPU minimum?

Menentukan platform CPU minimum berguna jika Anda memerlukan kemampuan dan spesifikasi CPU tertentu, seperti frekuensi dasar yang tinggi atau fungsi pengelolaan daya yang dioptimalkan.

Beberapa workload intensif komputasi tingkat lanjut di industri grafis, game, dan analisis dapat memanfaatkan fitur khusus yang tersedia melalui berbagai set fitur platform CPU, seperti AVX-2 dan AVX-512. Memilih platform CPU tertentu dapat menghasilkan peningkatan signifikan dalam waktu eksekusi dan performa. Dengan menentukan platform CPU minimum, workload Anda dapat mewujudkan peningkatan ini dengan cara yang lebih dapat diprediksi, dan Anda dapat memastikan bahwa node tidak pernah menggunakan platform CPU yang tidak sesuai untuk workload-nya.

Cara memilih platform

Tabel berikut menunjukkan cara memilih platform CPU minimum berdasarkan cara Anda menggunakan GKE:

Cakupan Deskripsi Konfigurasi cluster yang didukung
Tingkat workload (direkomendasikan)

Pilih platform minimum dalam spesifikasi Pod Anda. GKE menjadwalkan Pod tersebut sebagai berikut:

  • Autopilot: GKE menjadwalkan Pod pada node dengan platform yang ditentukan atau yang lebih baru.
  • Standard: GKE hanya menjadwalkan Pod pada node dengan platform yang ditentukan. Misalnya, jika node pool Intel Ice Lake sudah ada dan Pod baru meminta minimum Intel Cascade Lake, GKE akan membuat node pool baru dengan Intel Cascade Lake, meskipun Intel Ice Lake merupakan platform yang lebih canggih.
  • Autopilot yang menjalankan GKE versi 1.25 dan yang lebih baru.
  • Standard dengan penyediaan otomatis node yang menjalankan GKE versi 1.23 dan yang lebih baru.

Tingkat node dan cluster Pilih platform CPU minimum saat Anda membuat cluster mode atau node pool Standard yang baru. Setelan ini tidak mendukung penyediaan otomatis node. Untuk mengetahui petunjuknya, langsung ke bagian Memilih platform CPU minimum di level node pool. Cluster atau node pool Standard yang baru

Harga

Anda dapat memilih platform CPU minimum tanpa biaya tambahan.

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.

Periksa ketersediaan platform CPU

Platform CPU yang tersedia bervariasi berdasarkan zona komputasi tempat node Anda berjalan. Anda harus memeriksa platform CPU mana yang tersedia di zona meskipun Anda menggunakan cluster Autopilot atau cluster Standard regional.

Untuk memeriksa platform yang tersedia di zona tertentu, jalankan perintah berikut:

gcloud compute zones describe COMPUTE_ZONE

Ganti COMPUTE_ZONE dengan nama zona, seperti us-central1-a. Jika Anda menggunakan jenis cluster regional, tentukan nama zona di region tersebut.

Output-nya akan mirip dengan berikut ini:

availableCpuPlatforms:
- Intel Ice Lake
- Intel Cascade Lake
- Intel Skylake
- Intel Broadwell
- Intel Haswell
- Intel Ivy Bridge
- Intel Sandy Bridge
- AMD Milan
- AMD Rome
- Ampere Altra
- Intel Sapphire Rapids

Saat Anda menggunakan nilai ini untuk meminta platform CPU minimum, ganti spasi dengan garis bawah pada nama platform. Misalnya, AMD_Milan.

Pilih platform CPU minimum pada level workload

Jika menggunakan cluster GKE Autopilot atau cluster GKE Standard dengan penyediaan otomatis node, Anda dapat memilih platform CPU minimum dalam spesifikasi Pod. Saat Anda men-deploy workload, GKE menjadwalkan Pod tersebut hanya pada node yang memiliki platform tertentu atau yang lebih baru. Kami menyarankan metode ini.

Autopilot

Dalam Autopilot, minta platform CPU minimum dan class komputasi. Class komputasi harus mendukung platform CPU. Autopilot mendukung pemilihan platform CPU minimum untuk class komputasi Balanced. Untuk mengetahui daftar platform CPU yang tersedia di setiap class komputasi, lihat Kapan harus menggunakan class komputasi tertentu.

Simpan manifes berikut sebagai min-cpu.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/compute-class: "COMPUTE_CLASS"
        supported-cpu-platform.cloud.google.com/PLATFORM: "true"
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

Ganti kode berikut:

  • PLATFORM: nama platform CPU, seperti AMD_Milan. Nama platform peka huruf besar/kecil dan harus dipisahkan garis bawah.
  • COMPUTE_CLASS: nama class komputasi, yang harus berupa Balanced.

Standard

Di cluster Standard dengan penyediaan otomatis node yang diaktifkan, minta platform CPU bersama kelompok mesin Compute Engine. Kelompok mesin harus mendukung platform CPU. Untuk daftar platform yang didukung bagi setiap kelompok mesin, lihat platform CPU Compute Engine.

Simpan manifes berikut sebagai min-cpu.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/machine-family: MACHINE_FAMILY
        cloud.google.com/requested-min-cpu-platform: PLATFORM
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

Ganti kode berikut:

  • PLATFORM: nama platform CPU, seperti AMD_Milan. Nama platform peka huruf besar/kecil dan harus dipisahkan garis bawah.
  • MACHINE_FAMILY: nama kelompok mesin, seperti n2d.

Men-deploy workload:

kubectl apply -f min-cpu.yaml

Node mempertahankan platform yang sama selama siklus prosesnya, kecuali jika platform CPU yang ditentukan sudah dihentikan. Dalam hal ini, node Anda berjalan di platform yang lebih baru.

Memilih platform CPU minimum di level node pool

Untuk cluster GKE Standard tanpa penyediaan otomatis node, Anda dapat menentukan platform CPU minimum saat membuat cluster atau node pool baru. Anda hanya boleh menggunakan pendekatan ini jika Anda tidak dapat menggunakan setelan tingkat workload. Setelan ini tidak memengaruhi penyediaan otomatis node.

gcloud

Untuk membuat node pool baru dengan platform CPU minimum menggunakan gcloud CLI, tetapkan flag --min-cpu-platform dan tentukan nama platform CPU:

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --region COMPUTE_REGION \
    --min-cpu-platform PLATFORM

Ganti kode berikut:

  • POOL_NAME: nama node pool baru.
  • CLUSTER_NAME: nama cluster Anda.
  • COMPUTE_REGION: region untuk cluster.
  • PLATFORM: platform CPU yang ingin Anda jalankan di node pool, seperti "Intel Broadwell".

Konsol

  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. Klik Add Node Pool.

  4. Konfigurasikan node pool sesuai keinginan.

  5. Dari panel navigasi, klik Node.

  6. Di bagian Machine Configuration,

  7. Di menu drop-down Series, pilih jenis mesin.

  8. Di menu drop-down Machine type, pilih Custom.

  9. Pilih Cores dan Memory sesuai keinginan.

  10. Klik CPU Platform and GPU.

  11. Dalam menu drop-down CPU Platform, pilih platform yang diinginkan.

  12. Klik Buat.

API

Sertakan properti minCpuPlatform sebagai bagian dari kolom nodeConfig dalam isi permintaan. Nilai untuk minCpuPlatform harus berupa nama platform, seperti Intel Haswell, Intel Broadwell, dan Intel Sandy Bridge.

Misalnya, permintaan berikut akan membuat node pool baru yang menjalankan platform Intel Broadwell:

POST https://container.googleapis.com/v1/projects/PROJECT_ID/regions/COMPUTE_REGION/clusters/CLUSTER_NAME/nodePools

{
  'nodePool': {
    'name': 'POOL_NAME',
    'nodeConfig': {
      'minCpuPlatform': 'Intel Broadwell'
      ...
    }
    ...
  }
}

Ganti kode berikut:

  • PROJECT_ID: project ID Anda.
  • COMPUTE_REGION: region untuk cluster.
  • CLUSTER_NAME: nama cluster Anda.
  • POOL_NAME: nama node pool baru.

Jika Anda menentukan platform saat membuat cluster, setelan platform CPU minimum akan diterapkan untuk node pool default di cluster baru tersebut.

Alternatif

GKE juga memungkinkan Anda memilih platform CPU minimum menggunakan metode berikut:

Alternatif

Flag tingkat cluster

Flag --autoprovisioning-min-cpu-platform

Batasan

Batasan berikut berlaku untuk semua metode pemilihan platform CPU minimum:

  • Semua batasan platform CPU minimum Compute Engine berlaku.
  • Ketersediaan platform CPU tertentu bervariasi menurut zona.
  • Jenis mesin E2 tidak mendukung platform CPU minimum. Anda harus memilih jenis mesin yang berbeda.
  • Cluster Autopilot hanya mendukung pemilihan platform untuk class komputasi Balanced, bukan class komputasi default atau Scale-Out.
  • Jika workload Autopilot Anda meminta lebih dari 80 vCPU, platform CPU minimum harus berupa Intel Ice Lake atau yang lebih baru. Jika Anda menentukan platform yang kurang canggih, Pod Anda mungkin tetap dalam status Pending tanpa batas.

Batasan berikut berlaku untuk setelan platform CPU minimum node pool atau cluster:

Jika Anda memilih platform CPU minimum yang kurang canggih daripada platform CPU default di zona tersebut, atau jika platform yang dipilih tidak lagi tersedia, GKE akan memeriksa ketersediaan platform yang lebih baru dengan biaya yang sama. Jika platform yang lebih baru tersedia dengan biaya yang sama, GKE akan membuat node menggunakan platform yang lebih baru tersebut. Jika platform yang lebih baru tidak ada dengan biaya yang sama, pembuatan cluster atau node pool akan gagal.

Langkah berikutnya