Mengoptimalkan performa Pod Autopilot dengan memilih seri mesin


Halaman ini menunjukkan cara menempatkan workload pada seri mesin Compute Engine tertentu untuk performa workload yang optimal di cluster Autopilot Google Kubernetes Engine (GKE).

Pastikan Anda sudah memahami hal-hal berikut:

Cara kerja pemilihan seri mesin

Anda dapat menambahkan pemilih node cloud.google.com/machine-family ke spesifikasi Pod agar Autopilot mengalokasikan hardware Compute Engine tertentu untuk Pod tersebut. Misalnya, Anda dapat memilih seri mesin C3 untuk Pod yang memerlukan lebih banyak daya CPU, atau seri mesin N1 untuk Pod yang memerlukan lebih banyak memori. Autopilot menyediakan salah satu jenis mesin yang telah ditetapkan dari seri mesin yang dipilih untuk menjalankan beban kerja Anda secara optimal.

Selain performa Pod yang optimal, memilih seri mesin tertentu menawarkan manfaat berikut:

  • Penggunaan node yang efisien: Secara default, Autopilot mengoptimalkan penggunaan resource node dengan menjadwalkan sebanyak mungkin Pod yang meminta seri mesin yang sama ke setiap node. Pendekatan ini mengoptimalkan penggunaan resource pada node, yang meningkatkan rasio harga-performa. Jika workload Anda memerlukan akses ke semua resource di node, Anda dapat mengonfigurasi workload secara opsional untuk meminta satu Pod untuk setiap node.

  • Workload burstable: Anda dapat mengonfigurasi Pod untuk meledak ke kapasitas resource yang tidak terpakai di node dengan menetapkan batas resource lebih tinggi daripada permintaan Anda. Untuk mengetahui detailnya, lihat Mengonfigurasi bursting Pod di GKE.

Meminta node khusus untuk setiap Pod

Jika memiliki workload yang intensif CPU yang memerlukan akses andal ke semua resource node, Anda dapat mengonfigurasi Pod secara opsional agar Autopilot menempatkan Pod yang meminta seri mesin di node-nya sendiri.

Node khusus per Pod direkomendasikan saat Anda menjalankan workload berskala besar yang intensif CPU, seperti workload pelatihan AI/ML atau workload batch komputasi berperforma tinggi (HPC).

Memilih antara penjadwalan beberapa Pod dan satu Pod

Gunakan panduan berikut untuk memilih perilaku penjadwalan Pod berdasarkan persyaratan Anda:

Harga

Anda akan ditagih untuk VM yang mendasarinya dan hardware apa pun yang terpasang oleh Compute Engine, ditambah premium untuk pengelolaan dan skalabilitas node Autopilot. Untuk mengetahui detailnya, lihat harga GKE.

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 yang menjalankan versi 1.30.1-gke.1396000 atau yang lebih baru. Untuk membuat cluster, lihat Membuat cluster Autopilot.

Memilih seri mesin

Bagian ini menunjukkan cara memilih seri mesin Compute Engine tertentu di Pod.

  1. Simpan manifes berikut sebagai machine-series-pod.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: machine-series-pod
    spec:
      nodeSelector:
        cloud.google.com/machine-family: MACHINE_SERIES
      containers:
      - name: my-container
        image: "k8s.gcr.io/pause"
        resources:
          requests:
            cpu: 5
            memory: "25Gi"
          limits:
            cpu: 20
            memory: 100Gi
    

    Ganti MACHINE_SERIES dengan seri mesin Compute Engine untuk Pod Anda, seperti c3. Untuk nilai yang didukung, lihat Rangkaian mesin yang didukung di halaman ini.

  2. Deploy Pod:

    kubectl apply -f machine-series-pod.yaml
    

Manifes ini memungkinkan Autopilot mengoptimalkan penggunaan resource node dengan menjadwalkan Pod lain yang memilih seri mesin yang sama ke node yang sama secara efisien jika ada kapasitas yang tersedia.

Menggunakan SSD Lokal

Pod yang memilih seri mesin dapat menggunakan SSD Lokal untuk penyimpanan sementara jika Anda menentukan seri mesin yang menawarkan SSD Lokal. Autopilot mempertimbangkan permintaan penyimpanan sementara saat memilih jenis mesin Compute Engine untuk Pod.

  1. Simpan manifes berikut sebagai local-ssd-pod.yaml:

      apiVersion: v1
      kind: Pod
    metadata:
      name: local-ssd-pod
    spec:
      nodeSelector:
        cloud.google.com/machine-family: MACHINE_SERIES
        cloud.google.com/gke-ephemeral-storage-local-ssd: "true"
      containers:
      - name: my-container
        image: "k8s.gcr.io/pause"
        resources:
          requests:
            cpu: 6
            memory: "25Gi"
            ephemeral: "100Gi"
          limits:
            cpu: 12
            memory: "50Gi"
            ephemeral: "200Gi"
    

    Ganti MACHINE_SERIES dengan seri mesin yang didukung yang juga mendukung SSD Lokal. Jika seri mesin yang Anda tentukan tidak mendukung SSD Lokal, deployment akan gagal dengan error.

  2. Deploy Pod:

    kubectl apply -f local-ssd-pod.yaml
    

Meminta node khusus untuk Pod

Jika Pod Anda memiliki persyaratan performa tertentu seperti memerlukan akses yang andal ke semua resource node, Anda dapat meminta node khusus untuk setiap Pod dengan menentukan pemilih node cloud.google.com/compute-class: Performance bersama dengan pemilih node seri mesin Anda. Tindakan ini akan memberi tahu Autopilot untuk menempatkan Pod Anda di node baru yang menggunakan seri mesin yang ditentukan dan dikhususkan untuk Pod tersebut. Pemilih node ini juga mencegah Autopilot menjadwalkan Pod lain di node tersebut.

  1. Simpan manifes berikut sebagai dedicated-node-pod.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: dedicated-node-pod
    spec:
      nodeSelector:
        cloud.google.com/machine-family: MACHINE_SERIES
        cloud.google.com/compute-class: Performance
      containers:
      - name: my-container
        image: "k8s.gcr.io/pause"
        resources:
          requests:
            cpu: 12
            memory: "50Gi"
            ephemeral: "200Gi"
    

    Ganti MACHINE_SERIES dengan seri mesin yang didukung yang juga mendukung satu Pod per penjadwalan node. Jika seri mesin yang ditentukan tidak mendukung satu Pod per penjadwalan node, deployment akan gagal dengan error.

  2. Deploy Pod:

    kubectl apply -f dedicated-node-pod.yaml
    

Saat Anda men-deploy manifes ini, Autopilot akan melakukan hal berikut:

  • Memastikan bahwa Pod yang di-deploy meminta setidaknya resource minimum untuk node yang dioptimalkan performanya.
  • Menghitung total permintaan resource Pod yang di-deploy dan DaemonSet apa pun dalam cluster.
  • Menyediakan node yang didukung oleh seri mesin yang dipilih.
  • Mengubah manifes Pod dengan kombinasi pemilih node dan toleransi untuk memastikan Pod berjalan di node-nya sendiri.

Seri mesin yang didukung

Pemilih machine-family mendukung seri mesin berikut:

(selalu dipaketkan)

Untuk membandingkan seri mesin ini dan kasus penggunaannya, lihat Perbandingan seri mesin dalam dokumentasi Compute Engine.

Kompatibilitas dengan fitur GKE lainnya

Anda dapat menggunakan Pod yang memilih seri mesin dengan kemampuan dan fitur GKE berikut:

Pod Spot dan Pod dengan waktu percobaan yang diperpanjang tidak dapat digunakan secara bersamaan. GKE tidak menerapkan permintaan resource minimum yang lebih tinggi untuk Pod khusus per node, meskipun Pod tersebut menggunakan pemisahan workload.

Cara GKE memilih jenis mesin

Untuk memilih jenis mesin dalam seri mesin yang ditentukan, GKE menghitung total CPU, total memori, dan total permintaan penyimpanan sementara Pod dan DaemonSet yang akan berjalan di node baru. GKE membulatkan nilai ini ke jenis mesin Compute Engine terdekat yang tersedia dan mendukung semua total ini.

  • Contoh 1: Pertimbangkan Deployment dengan empat replika yang memilih seri mesin C3D. Anda tidak meminta node khusus per Pod. Permintaan resource setiap replika adalah sebagai berikut:

    • 500 m vCPU
    • Memori 1 GiB

    Autopilot menempatkan semua Pod di node yang didukung oleh jenis mesin c3d-standard-4, yang memiliki 4 vCPU dan memori 16 GB.

  • Contoh 2: Pertimbangkan Pod yang memilih seri mesin C3D dan SSD Lokal untuk penyimpanan efemeral. Anda meminta node khusus untuk Pod. Total permintaan resource termasuk DaemonSet adalah sebagai berikut:

    • 12 vCPU
    • Memori 50 GiB
    • Penyimpanan efemeral 200 GiB

    Autopilot menempatkan Pod di node yang menggunakan jenis mesin c3d-standard-16-lssd, yang memiliki 16 vCPU, memori 64 GiB, dan kapasitas SSD Lokal 365 GiB.

Langkah selanjutnya