Dokumen 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 memahami hal berikut:
- Seri mesin Compute Engine dan kasus penggunaan
- Persyaratan tingkat kernel untuk aplikasi Anda
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.
Untuk menjalankan workload secara optimal, Autopilot menyediakan salah satu jenis mesin yang telah ditetapkan dari seri mesin yang Anda pilih.
Selain performa Pod yang optimal, memilih seri mesin tertentu juga memberikan 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 terhadap performa. Jika workload Anda memerlukan akses ke semua resource di node, Anda dapat mengonfigurasi workload untuk meminta satu Pod untuk setiap node.
Workload yang dapat di-burst: Anda dapat mengonfigurasi Pod untuk melakukan burst ke kapasitas resource yang tidak digunakan di node dengan menetapkan batas resource lebih tinggi dari permintaan Anda. Untuk mengetahui detailnya, lihat Mengonfigurasi bursting Pod di GKE.
Merencanakan node khusus untuk setiap Pod
Jika Anda memiliki workload yang menggunakan banyak CPU dan memerlukan akses yang andal ke semua resource node, Anda dapat mengonfigurasi Pod untuk meminta Autopilot menempatkan Pod yang meminta seri mesin di node-nya sendiri.
Node khusus per Pod direkomendasikan saat Anda menjalankan workload skala besar yang menggunakan banyak CPU, seperti workload pelatihan AI/ML atau workload batch komputasi berperforma tinggi (HPC).
Memilih antara penjadwalan multi-Pod dan single-Pod
Gunakan panduan berikut untuk memilih perilaku penjadwalan Pod berdasarkan persyaratan Anda:
- Jika Anda memiliki Pod yang dapat berbagi resource komputasi dengan Pod lain atau Anda ingin meng optimalkan biaya saat menjalankan Pod di hardware khusus, gunakan perilaku penjadwalan default beberapa Pod per node.
- Jika Anda memiliki Pod yang memerlukan akses yang andal ke resource node penuh atau Anda ingin meminimalkan kemungkinan gangguan yang disebabkan oleh berbagi resource komputasi, Minta node khusus untuk setiap Pod.
Harga
Anda akan ditagih untuk VM yang mendasarinya dan hardware terlampir apa pun oleh Compute Engine, ditambah premi untuk pengelolaan dan skalabilitas node Autopilot. Untuk mengetahui detailnya, lihat harga GKE.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Mengaktifkan Google Kubernetes Engine API
- Untuk 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 perintah
gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung perintah yang dijalankan dalam dokumen ini.
- 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.
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: 100GiGanti
MACHINE_SERIESdengan seri mesin Compute Engine untuk Pod Anda, sepertic3. Untuk nilai yang didukung, lihat Seri mesin yang didukung di halaman ini.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 efemeral jika Anda menentukan seri mesin yang menawarkan SSD Lokal. Autopilot mempertimbangkan permintaan penyimpanan efemeral saat memilih jenis mesin Compute Engine untuk Pod.
Untuk mempelajari lebih lanjut, lihat Menggunakan penyimpanan efemeral yang didukung SSD Lokal dengan cluster Autopilot.
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. Hal ini menunjukkan kepada 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.
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_SERIESdengan seri mesin yang didukung yang juga mendukung penjadwalan satu Pod per node. Jika seri mesin yang ditentukan tidak mendukung penjadwalan satu Pod per node, deployment akan gagal dengan error.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 di 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:
Jika Anda tidak menentukan seri mesin saat memilih class Performa, GKE akan menggunakan seri mesin C4 jika jenis mesin C4 tersedia di region.
Untuk membandingkan seri mesin ini dan kasus penggunaannya, lihat Perbandingan seri mesin dalam dokumentasi Compute Engine.
Persyaratan versi
Lihat persyaratan versi berikut untuk seri mesin tertentu:
- C4N: GKE versi 1.36.0-gke.3009002 dan yang lebih baru
- C4D: GKE versi 1.32.9-gke.1711000 dan yang lebih baru
- N4D:
- GKE versi 1.33.13-gke.1079000 dan yang lebih baru
- GKE versi 1.34.1-gke.2037000 dan yang lebih baru
Kompatibilitas dengan fitur GKE lainnya
Pod yang memilih seri mesin dapat menggunakan kemampuan dan fitur GKE yang didukung oleh seri mesin tersebut, seperti:
- Pod Spot
- Pod waktu proses yang diperpanjang (hanya dengan node khusus per Pod)
- Pemisahan workload
- Pemesanan kapasitas
- Diskon abonemen
Pod Spot dan Pod waktu proses yang diperpanjang tidak dapat digunakan secara bersamaan. GKE tidak menerapkan permintaan resource minimum yang lebih tinggi untuk Pod khusus per node, meskipun 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 efemeral Pod serta DaemonSet apa pun yang akan berjalan di node baru. GKE membulatkan nilai ini ke jenis mesin Compute Engine terdekat yang tersedia yang 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:
- 500m vCPU (0,5 vCPU)
- Memori 1 GiB
Autopilot menempatkan keempat 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
C3Ddan 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 berikutnya
- Untuk panduan tentang opsi komputasi yang ditawarkan Autopilot untuk berbagai kasus penggunaan, lihat Class komputasi di Autopilot.
- Men-deploy workload berbasis GPU di Autopilot.