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:
- Kasus penggunaan dan seri mesin Compute Engine
- 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. 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:
- Jika Anda memiliki Pod yang dapat berbagi resource komputasi dengan Pod lain atau ingin mengoptimalkan biaya saat menjalankan Pod di hardware khusus, gunakan perilaku penjadwalan default beberapa Pod per node.
- Jika Anda memiliki Pod yang memerlukan akses andal ke resource node penuh atau 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 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.
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, sepertic3
. Untuk nilai yang didukung, lihat Rangkaian 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 sementara jika Anda menentukan seri mesin yang menawarkan SSD Lokal. Autopilot mempertimbangkan permintaan penyimpanan sementara saat memilih jenis mesin Compute Engine untuk Pod.
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.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
beserta 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.
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.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 performa.
- 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:
(Pratinjau dengan daftar yang diizinkan *) | ||
(selalu dipaketkan) |
* Fitur ini mengharuskan Anda ditambahkan ke daftar yang diizinkan. Untuk mendapatkan akses, hubungi tim akun Anda. ↩
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:
- Spot Pod
- Pod dengan waktu proses yang diperpanjang (hanya dengan node khusus per Pod)
- Pemisahan beban kerja
- Reservasi kapasitas
- Diskon abonemen
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
- Untuk panduan tentang opsi komputasi yang ditawarkan Autopilot untuk berbagai kasus penggunaan, lihat Class komputasi di Autopilot.
- Men-deploy workload berbasis GPU di Autopilot.