Di lingkungan multi-cluster Google Kubernetes Engine (GKE) Inference Gateway, Anda dapat menerapkan konfigurasi backend yang berbeda ke layanan yang di-deploy di beberapa cluster. Misalnya, Anda dapat menetapkan kecepatan permintaan maksimum atau penskala kapasitas yang berbeda untuk backend di berbagai region atau lingkungan.
Untuk memahami dokumen ini, Anda harus memahami hal-hal berikut:
- Orkestrasi AI/ML di GKE.
- Terminologi AI Generatif.
- Konsep jaringan GKE, termasuk Layanan, GKE Multi Cluster Ingress, dan API GKE Gateway.
- Load balancing di Google Cloud, terutama cara load balancer berinteraksi dengan GKE.
Dokumen ini menargetkan persona berikut:
- Engineer machine learning (ML), Admin dan operator platform, serta Spesialis Data dan AI yang tertarik menggunakan kemampuan orkestrasi kontainer Kubernetes untuk menyajikan beban kerja AI/ML.
- Arsitek cloud atau spesialis Jaringan yang berinteraksi dengan jaringan Kubernetes.
Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam Google Cloud konten, lihat Peran dan tugas pengguna GKE Enterprise umum.
Cara kerja cakupan GCPBackendPolicy
Kolom scopes di GCPBackendPolicy memungkinkan Anda menyesuaikan konfigurasi backend berdasarkan cluster tertentu tempat backend Anda berjalan. Anda dapat menerapkan
setelan yang berbeda ke backend di lingkungan atau region yang berbeda, yang memberi
Anda kontrol mendetail atas beban kerja AI/ML terdistribusi. Bagian berikut menjelaskan cara menargetkan resource, menentukan cakupan kebijakan, dan menangani penyelesaian konflik.
Menargetkan resource Inference Gateway
Untuk menggunakan kebijakan Inference Gateway di lingkungan GKE multi-cluster, kolom targetRef GCPBackendPolicy harus mereferensikan resource GCPInferencePoolImport:
targetRef:
group: networking.gke.io
kind: GCPInferencePoolImport
name: example
Definisi cakupan kebijakan
Kolom scopes di GCPBackendPolicy memungkinkan Anda menerapkan setelan backend yang berbeda ke grup backend tertentu. Dengan menentukan objek konfigurasi
dalam default.scopes, Anda dapat menggunakan label cluster untuk menargetkan backend secara tepat
dan menerapkan setelan tertentu. Misalnya, Anda dapat menetapkan batas kapasitas atau
kecepatan permintaan yang unik untuk backend di berbagai region atau cluster.
Anda tidak dapat menentukan kolom tingkat backend yang sama (seperti maxRatePerEndpoint) di
bagian default utama dan dalam entri default.scopes.
Mencoba melakukannya akan menyebabkan kebijakan ditolak, yang membantu memastikan konfigurasi yang jelas dan konsisten.
Penyelesaian konflik
Jika backend cocok dengan beberapa cakupan, sistem akan menerapkan aturan berikut untuk memastikan perilaku yang dapat diprediksi:
- Pencocokan yang diprioritaskan: jika backend mencocokkan beberapa pemilih dalam daftar
scopes, sistem hanya menerapkan setelan dari pemilih yang cocok pertama. Urutkan cakupan Anda dari yang paling spesifik hingga yang paling umum untuk membantu memastikan konfigurasi yang Anda inginkan diterapkan. - Penargetan presisi: saat satu pemilih berisi beberapa label (misalnya,
gke.io/region: us-central1danenv: prod), backend harus memenuhi semua label tersebut agar sistem menerapkan konfigurasi cakupan. Pendekatan ini memungkinkan Anda menargetkan backend secara tepat berdasarkan beberapa kriteria.
Kolom per-backend yang didukung
Tabel berikut mencantumkan kolom tingkat backend yang dapat Anda sesuaikan untuk mengontrol perilaku backend di berbagai lingkungan atau region.
| Nama Kolom | Deskripsi | Contoh Konfigurasi |
|---|---|---|
backendPreference |
Menentukan apakah backend lebih disukai (PREFERRED) atau
default (DEFAULT) selama penyesuaian kapasitas untuk load balancing
multi-region. |
backendPreference: PREFERRED |
balancingMode |
Menentukan algoritma penyeimbangan. Nilai yang didukung adalah RATE, UTILIZATION, atau CUSTOM_METRICS. |
balancingMode: CUSTOM_METRICS |
capacityScalerPercent |
Mengonfigurasi distribusi traffic berdasarkan kapasitas. Nilai ini adalah persentase dari 0 hingga 100, yang berfungsi sebagai pengali pada kapasitas target yang dikonfigurasi backend. Nilai defaultnya adalah 100%. | capacityScalerPercent: 20 |
customMetrics |
Menentukan metrik kustom yang digunakan untuk load balancing saat
balancingMode disetel ke CUSTOM_METRICS. Kolom ini
adalah daftar definisi metrik. |
customMetrics: [{ name: "my-metric", value: 0.8 }] |
maxInFlightPerEndpoint |
Menetapkan jumlah maksimum permintaan atau koneksi serentak per endpoint. | maxInFlightPerEndpoint: 100 |
maxRatePerEndpoint |
Menetapkan laju maksimum permintaan per endpoint, dalam permintaan per detik (RPS). | maxRatePerEndpoint: 50 |
Menentukan pemilih cakupan
Kolom selectors di setiap cakupan memungkinkan Anda mengontrol backend mana yang menerima setelan kebijakan tertentu. Anda dapat menargetkan backend berdasarkan label cluster—baik label GKE bawaan maupun label kustom Anda sendiri—untuk menyesuaikan konfigurasi bagi berbagai grup backend.
kind: GCPBackendPolicy
apiVersion: networking.gke.io/v1
metadata:
name: echoserver-v2
spec:
targetRef:
group: "networking.gke.io"
kind: GCPInferencePoolImport
name: test-inference-pool
default:
balancingMode: IN_FLIGHT # IN_FLIGHT mode is set at the default level
scopes:
- selector:
gke.io/zone: "us-central1-a"
maxInFlightPerEndpoint: 100 # Invalid: maxInFlightPerEndpoint cannot be set within a scope when balancingMode is IN_FLIGHT at the default level
Label GKE implisit
Label implisit berikut tersedia untuk digunakan sebagai pemilih. GKE secara otomatis menerapkan label ini ke cluster Anda:
| Label | Deskripsi | Nilai Contoh |
|---|---|---|
gke.io/cluster-name |
Nama cluster GKE. | my-cluster |
gke.io/region |
Region tempat cluster berada. | us-central1 |
gke.io/zone |
Zona tempat cluster berada. | us-central1-a |
Label cluster kustom
Label cluster kustom memberikan fleksibilitas yang lebih besar untuk mengelompokkan dan mengelola backend Anda. Dengan menentukan label Anda sendiri di cluster GKE, Anda
dapat membuat pemilih yang sangat spesifik di GCPBackendPolicy untuk menerapkan konfigurasi
unik. Misalnya, Anda dapat mendasarkan konfigurasi ini pada kriteria seperti
lingkungan yang berbeda (dev, staging, atau prod) atau versi aplikasi
tertentu.
Untuk menambahkan label kustom, seperti environment=production, ke cluster GKE, jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME \
--region=REGION \
--update-labels=LABEL_KEY=LABEL_VALUE
Ganti kode berikut:
CLUSTER_NAME: nama cluster Anda.REGION: region cluster Anda.LABEL_KEY: kunci untuk label kustom Anda, misalnya,environment.LABEL_VALUE: nilai untuk label kustom Anda, misalnya,production.
Kemudian, Anda dapat memilih backend di cluster ini dengan menggunakan pemilih label kustom dalam kebijakan Anda.
Contoh GCPBackendPolicy dengan pemilih cakupan
Contoh berikut menentukan GCPBackendPolicy yang menargetkan
GCPInferencePoolImport bernama experimental. Kebijakan ini menggunakan label implisit dan
kustom untuk menetapkan nilai backendPreference, maxRatePerEndpoint, dan
capacityScalerPercent.
apiVersion: networking.gke.io/v1
kind: GCPBackendPolicy
metadata:
name: backend-policy
spec:
targetRef:
kind: GCPInferencePoolImport
name: experimental
default:
scopes:
# Selector 1: Targets backends in us-west2, sets capacity to 50%
- capacityScalarPercent: 50
selector:
gke.io/region: us-west2
# Selector 2: Targets backends in clusters labeled 'env: prod'
- maxRatePerEndpoint: 40
selector:
env: prod
# Selector 3: Targets backends in a specific US-Central zone and marks them as PREFERRED
- backendPreference: PREFERRED
maxRatePerEndpoint: 50
selector:
gke.io/cluster-name: my-cluster
gke.io/zone: us-central1-a
Setelah menerapkan kebijakan ini, Anda akan mengamati perilaku berikut:
- Backend di cluster dalam region
us-west2memiliki kapasitas efektif yang diskalakan menjadi 50%. - Backend dalam cluster yang diberi label
env: proddibatasi hingga maksimum 40 permintaan per detik per endpoint. - Backend di cluster yang berlokasi secara khusus di zona
us-central1-adiprioritaskan (PREFERRED) selama load balancing dan memiliki kecepatan maksimum 50 permintaan per detik per endpoint.
Langkah berikutnya
- Pelajari cara Mengonfigurasi
GCPBackendPolicy. - Pelajari lebih lanjut Inference Gateway multi-cluster GKE.
- Pelajari lebih lanjut cara Menyiapkan Inference Gateway multi-cluster GKE.