Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gerbang Inferensi untuk Inferensi Amazon SageMaker HyperPod
Amazon SageMaker HyperPod Inference Gateway adalah lapisan Kubernetes-native perutean dan orkestrasi sadar model bahasa besar (LLM) untuk cluster di Amazon EKS. HyperPod Ini memeriksa permintaan inferensi, membaca nama model dari setiap permintaan, dan memilih pod yang melayani model berdasarkan beban GPU, sehingga lalu lintas untuk beberapa model dirutekan secara efisien melalui titik akhir gateway tunggal.
Gateway merutekan setiap permintaan melalui tiga lapisan. Body-Based Router (BBR), komponen bersama, membaca model bidang dari badan permintaan, menyelesaikan nama adaptor LoRa ke model dasarnya, dan menyetel dan header. X-Gateway-Model-Name X-Gateway-Base-Model-Name Gateway kemudian mencocokkan header tersebut ke HttpRoute dan meneruskan permintaan ke model yang InferencePool diminta. Di dalam pool tersebut, Endpoint Picker (EPP/scheduler) memilih pod yang melayani model dengan menilai kandidat pada metrik model-server seperti kedalaman antrian dan pemanfaatan cache KV, bersama dengan prefix-cache dan afinitas adaptor LoRa. Setiap entri yang Anda tentukan di bawah spec.schedulers menjalankan Endpoint Picker sendiri, jadi topik ini menggunakan istilah Endpoint Picker, EPP, dan scheduler secara bergantian.
Inference Gateway dibangun di atas Operator HyperPod Inferensi alih-alih menggantinya. Sementara operator terus mengatur penerapan model, gateway memperkenalkan lapisan LLM-aware perutean di depan pod yang melayani model. Gateway tidak bergantung pada server model atau lapisan orkestrasi tertentu, dan dikirimkan melalui add-on Inference HyperPod Amazon EKS.
Anda menentukan gateway dengan sumber daya InferenceGatewayConfig kustom. Satu InferenceGatewayConfig menjelaskan satu gateway: Body-Based Router bersama, penghentian TLS, otentikasi permintaan, dan satu penjadwal untuk setiap model yang dilayani gateway. Untuk skema lengkapnya, lihatInferenceGatewayConfig Referensi CRD.
penting
Titik akhir yang dibuat oleh Inference Gateway tidak memiliki otentikasi atau otorisasi tingkat permintaan secara default. Kecuali Anda mengonfigurasinya spec.auth.jwtInferenceGatewayConfig, gateway menerima permintaan apa pun yang mencapainya; akses hanya dibatasi oleh VPC dan kontrol jaringan Anda. Kami sangat menyarankan untuk mengaktifkan otentikasi JWT di setiap gateway. Untuk mengonfigurasi otentikasi, lihat Prasyarat dan penyebaran dan spec.auth di bawahbidang spesifikasi.
Prasyarat dan penyebaran
Inference Gateway dikirimkan sebagai bagian dari add-on HyperPod Inference Amazon EKS. Menginstal add-on membuat gateway tersedia, jadi tidak diperlukan instalasi terpisah. Anda kemudian mengaktifkan perutean gateway untuk model melalui spec.inferenceGateway.enabled bidang pada InferenceEndpointConfig sumber daya model. Untuk versi di mana kemampuan diperkenalkan, lihatCatatan rilis Amazon SageMaker HyperPod Inference.
Sebelum Anda merutekan lalu lintas melalui gateway, verifikasi hal berikut:
- Pod yang melayani model yang digunakan
-
Setiap penjadwal merutekan ke pod yang melayani model yang dipilih oleh pemilih label. Terapkan model Anda dengan Operator HyperPod Inferensi, dan perhatikan label yang diterapkan pada pod mereka sehingga Anda dapat mereferensikannya dalam konfigurasi gateway. Untuk membuat daftar label pada pod model Anda, jalankan perintah berikut:
kubectl get pods -n NAMESPACE --show-labels - Versi server model
-
Inference Gateway membutuhkan VllM v0.9.2 atau yang lebih baru dan SGlang v0.3.5.post1 atau yang lebih baru. Pada versi VLLM sebelumnya, metrik cache KV diterbitkan dengan nama yang berbeda dari yang dibaca gateway. Permintaan masih dirutekan menggunakan sinyal yang tersisa, tetapi penggunaan cache KV diabaikan dan tidak ada kesalahan yang dilaporkan. Versi SGLang sebelumnya tidak mendukung
--enable-metricsbendera dan penampung gagal dimulai. Mulai SGLang dengan flag ini sehingga gateway dapat membaca metrik yang dibutuhkan untuk keputusan perutean. - Add-on versi
-
Inference Gateway tersedia dimulai dengan versi
v2.0.0-eksbuild.2add-on SageMaker HyperPod Inference Amazon. Instal atau perbarui ke versi add-on terbaru yang tersedia. Jika klaster Anda tidak mengenaliInferenceGatewayConfigsumber daya, add-on menjalankan versi sebelumnya yang tidak menyertakan gateway. - Dependensi cluster
-
-
cert-manager harus diinstal di cluster untuk jalur TLS masalah otomatis, yang digunakan gateway saat
spec.tlsdisetel tanpa file.acmArn -
AWS Load Balancer Controller harus diinstal untuk tipe titik akhir Application Load Balancer.
-
Gateway menggunakan
hyperpod-inference-systemnamespace.
-
- Sertifikat TLS
-
Untuk mengakhiri HTTPS di gateway, berikan ARN sertifikat ACM yang ada atau biarkan gateway mengeluarkan sertifikat secara otomatis. Auto-issue menggunakan cert-manager dan mengimpor sertifikat ke ACM. Alur ini mengharuskan peran eksekusi operator untuk memiliki
acm:ImportCertificate,acm:AddTagsToCertificate,acm:DescribeCertificate, danacm:DeleteCertificateizin melalui IRSA. - Minta otentikasi (disarankan)
-
Kami sangat menyarankan untuk mengaktifkan otentikasi JWT di setiap gateway dengan menyetel pada.
spec.auth.jwtInferenceGatewayConfigKetikaspec.authdihilangkan, gateway tidak memiliki otentikasi tingkat permintaan dan akses hanya dibatasi oleh VPC dan kontrol jaringan Anda. Untuk mengaktifkan otentikasi JWT, siapkan hal-hal berikut sebelum Anda membuatInferenceGatewayConfig: URL penerbit OIDC, titik akhir HTTPS JWKS yang menerbitkan kunci penandatanganan penerbit, dan nilai audiens (atau klaim wajib) yang harus dibawa oleh token untuk gateway ini. Lihatspec.authdi bawah bidang spesifikasi untuk skema lengkap.
Mengatur peran IAM penerbit sertifikat
Saat gateway mengeluarkan sertifikat TLS secara otomatis, cert-manager menghasilkan sertifikat di cluster dan pengontrol gateway mengimpornya ke ACM. Karena impor adalah panggilan AWS API, pengontrol memerlukan AWS kredensil. Menyediakannya dengan membuat peran IAM yang diasumsikan oleh akun inference-gateway-controller layanan di hyperpod-inference-system namespace melalui peran IAM untuk akun layanan (IRSA).
penting
Masalah otomatis TLS diaktifkan secara default, dan pengontrol gateway membaca peran ini saat dimulai. Buat peran sebelum Anda menginstal add-on.
Tetapkan variabel lingkungan berikut dan ambil penerbit OIDC untuk klaster Anda.
export CLUSTER=EKS_CLUSTER_NAME export REGION=REGION export ACCOUNT=AWS_ACCOUNT_ID export ROLE_NAME=CERT_ISSUER_ROLE_NAME export OIDC_ID=$(aws eks describe-cluster --name $CLUSTER --region $REGION \ --query 'cluster.identity.oidc.issuer' --output text | sed 's|https://||')
Buat kebijakan kepercayaan yang memungkinkan akun layanan pengontrol gateway untuk mengambil peran.
cat > trust-policy.json <<EOF { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::${ACCOUNT}:oidc-provider/${OIDC_ID}" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "${OIDC_ID}:sub": "system:serviceaccount:hyperpod-inference-system:inference-gateway-controller", "${OIDC_ID}:aud": "sts.amazonaws.com" } } }] } EOF
Buat peran dan lampirkan kebijakan AmazonSageMakerHyperPodInferenceGatewayAccess terkelola. Kebijakan memberikan izin ACM yang diperlukan pengontrol untuk mengimpor, menandai, mendeskripsikan, dan menghapus sertifikat yang dibuatnya.
aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document file://trust-policy.json aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerHyperPodInferenceGatewayAccess
Berikan peran ARN ini seperti inferenceGateway.serviceAccount.roleArn saat Anda menginstal add-on.
catatan
Jika peran sudah ada dari klaster lain, verifikasi bahwa kebijakan kepercayaannya mencakup penyedia OIDC untuk klaster ini.
Instal add-on
Add-on HyperPod Inference menginstal Operator Inference dan Inference Gateway. Instal dengan perintah berikut. UntukinferenceGateway.serviceAccount.roleArn, gunakan peran penerbit sertifikat yang Anda buat di bagian sebelumnya. Ganti nilai placeholder yang tersisa dengan peran dan bucket untuk akun Anda.
aws eks create-addon \ --cluster-name $CLUSTER --region $REGION \ --addon-name amazon-sagemaker-hyperpod-inference \ --addon-version v2.0.0-eksbuild.2 \ --configuration-values '{ "executionRoleArn": "arn:aws:iam::<ACCOUNT>:role/<EXEC_ROLE>", "tlsCertificateS3Bucket": "<TLS_BUCKET>", "inferenceOperator": { "enabled": true }, "inferenceGateway": { "enabled": true, "serviceAccount": { "roleArn": "arn:aws:iam::<ACCOUNT>:role/<CERT_ISSUER_ROLE_NAME>" } }, "keda": { "enabled": true, "auth": { "aws": { "irsa": { "enabled": true, "roleArn": "arn:aws:iam::<ACCOUNT>:role/<KEDA_IRSA_ROLE>" } } } }, "alb": { "enabled": true, "serviceAccount": { "create": true, "roleArn": "arn:aws:iam::<ACCOUNT>:role/<ALB_IRSA_ROLE>" } }, "jumpstartGatedModelDownloadRoleArn": "arn:aws:iam::<ACCOUNT>:role/<JUMPSTART_ROLE>" }'
Jika add-on sudah diinstal pada cluster, ganti create-addon dengan update-addon dan tambahkan--resolve-conflicts OVERWRITE. Sisa perintah tidak berubah. OVERWRITEmenerapkan nilai konfigurasi dalam perintah atas konfigurasi add-on yang ada.
Konfirmasikan bahwa pengontrol gateway sedang berjalan dan sumber daya gateway terdaftar.
kubectl rollout status deploy/inference-gateway-controller \ -n hyperpod-inference-system --timeout=150s kubectl get crd inferencegatewayconfigs.inference.sagemaker.aws.amazon.com kubectl get gatewayclass inference-gateway
Konfirmasikan bahwa add-on itu sendiri aktif dan tidak melaporkan masalah kesehatan.
aws eks describe-addon \ --cluster-name $CLUSTER --region $REGION \ --addon-name amazon-sagemaker-hyperpod-inference \ --query 'addon.{version:addonVersion,status:status,health:health.issues}'
Integrasi dengan HyperPod Operator Inferensi
Operator HyperPod Inferensi dan Gerbang Inferensi memiliki tanggung jawab yang berbeda. Operator memiliki penyebaran model, orkestrasi, dan kabel yang menempelkan model ke gateway. Gateway memiliki perutean permintaan dan menghasilkan sumber daya perutean untuk setiap penjadwal. Untuk informasi selengkapnya tentang penerapan model dengan operator, lihatMenerapkan model di Amazon SageMaker HyperPod.
- HyperPod Operator Inferensi
-
Rekonsiliasi sumber daya kustom model
InferenceEndpointConfigdanJumpStartModel(grupinference.sagemaker.aws.amazon.com, versiv1). Operator membuat model Deployment and Service, Application Load Balancer, penskalaan otomatis KEDA, sertifikat manajer sertifikat, dan pendaftaran titik akhir AI. SageMaker Ketika gateway diaktifkan untuk model, operator juga menghubungkan model itu ke gateway. - Gerbang Inferensi
-
Memiliki routing permintaan, dari Body-Based Router melalui gateway dan HttpRoute ke Endpoint Picker, dan menghasilkan sumber daya routing hilir untuk setiap penjadwal: konfigurasi, Endpoint Picker, HttpRoute, dan.
InferencePoolEnvoyExtensionPolicy
catatan
Sumber daya kustom model operator menggunakan versiv1, sedangkan InferenceGatewayConfig sumber daya gateway menggunakan versiv1alpha1. Keduanya termasuk dalam inference.sagemaker.aws.amazon.com kelompok.
Anda melampirkan model ke gateway melalui operator, pada sumber daya model InferenceEndpointConfig (atauJumpStartModel), menggunakan spec.inferenceGateway bidang:
spec.inferenceGateway.enabled(Opsional, Boolean)Apakah model ini dilampirkan ke gateway. Default:
false.spec.inferenceGateway.name(Opsional, String)Nama sumber
InferenceGatewayConfigdaya untuk dilampirkan. Model yang berbagi nama dan namespace berbagi satu gateway. Ketika bidang ini kosong, operator menghasilkan nama formulirinf-igw-<uuid>.
Cuplikan berikut menunjukkan inferenceGateway keikutsertaan pada sumber daya. InferenceEndpointConfig
apiVersion: inference.sagemaker.aws.amazon.com/v1 kind: InferenceEndpointConfig metadata: name: my-model spec: # ... model deployment fields ... inferenceGateway: enabled: true name: my-gateway # Optional. When empty, the operator generates inf-igw-<uuid>.
Operator mencerminkan status lampiran pada sumber daya model di bawahstatus.inferenceGateway, yang melaporkan State dariPending,Ready, atauFailed, dan Name terlampirInferenceGatewayConfig. Anda tidak dapat mengatur inferenceGateway.enabled bersama dengan intelligentRoutingSpec.enabled model yang sama; bidang-bidang ini saling eksklusif.
Ketika gateway diaktifkan untuk model, operator membuat atau memperbarui InferenceGatewayConfig sumber daya tunggal dan menggabungkan entri untuk model ke dalam spec.schedulers daftarnya. Operator menetapkan schedulername,, modelNametargetPort, danmodelSelector, dan default scheduler ke llm-d saat pertama kali membuat entri. Pada rekonsiliasi selanjutnya, operator mempertahankan nilai-nilai yang disediakan pelanggan seperti,, dan. scheduler weights loraAdapters Body-BasedRouter diaktifkan secara otomatis ketika ada lebih dari satu penjadwal.
Operator tidak menghapus InferenceGatewayConfig sumber daya atau sumber daya routing hilir. Saat Anda menonaktifkan gateway untuk model atau menghapus model, operator hanya menghapus entri penjadwal model tersebut. Pengontrol gateway memiliki pembersihan sumber daya perutean.
Anda dapat menulis InferenceGatewayConfig dalam dua cara, dan dua jalur hidup berdampingan pada sumber daya yang sama:
-
Aktifkan gateway per model melalui operator, dengan menyetel
spec.inferenceGateway.enabledpada modelInferenceEndpointConfig. Operator membuat dan memelihara entri penjadwal untuk model. -
Penulis
InferenceGatewayConfigsumber daya secara langsung, seperti yang ditunjukkan padaContoh.
Komponen gateway dan InferenceGatewayConfig CRD harus diinstal melalui add-on HyperPod Inference Amazon EKS sebelum sumber daya model dengan gateway diaktifkan dapat direkonsiliasi. Untuk instalasi add-on operator, lihatMenginstal Operator Inferensi dengan add-on EKS. Untuk menerapkan pod yang melayani model yang dirutekan oleh penjadwal, lihat. Menyebarkan model pondasi dan model yang disesuaikan khusus
catatan
Menjaga kesehatan Operator SageMaker HyperPod Inferensi adalah tanggung jawab bersama antara AWS dan pelanggan. AWS bertanggung jawab untuk memberikan dan memelihara Operator SageMaker HyperPod Inferensi. Setelah instalasi, pelanggan bertanggung jawab untuk memantau kesehatan operasional operator dalam cluster mereka.
InferenceGatewayConfig Referensi CRD
Anda mengonfigurasi Inference Gateway dengan satu sumber daya InferenceGatewayConfig kustom. Sumber daya adalah singleton untuk gateway tertentu: ia memegang konfigurasi Body-Based Router bersama dan daftar penjadwal per-model. Pengontrol menghasilkan sumber daya yang mendasariInferencePool, Endpoint Picker, HttpRoute, dan EnvoyExtensionPolicy sumber daya untuk setiap penjadwal; Anda hanya membuat sumber daya. InferenceGatewayConfig
| Properti | Nilai |
|---|---|
| Jenis | InferenceGatewayConfig |
| Kelompok | inference.sagemaker.aws.amazon.com |
| Versi | v1alpha1 |
| Jamak | inferencegatewayconfigs |
| Nama pendek | igwc |
| Lingkup | Ruang nama |
| Subsumber daya status | /status |
bidang spesifikasi
specBidang InferenceGatewayConfig sumber daya berisi konfigurasi Body-Based Router bersama, pengaturan TLS, daftar penjadwal yang diperlukan, dan observabilitas opsional dan pengaturan pod-default.
bbr(Wajib)-
Konfigurasi untuk Body-Based Router bersama. Berisi bidang-bidang berikut:
bbr.enabled(Diperlukan, Boolean)Apakah Body-Based router diaktifkan. Router harus diaktifkan ketika lebih dari satu penjadwal dikonfigurasi.
bbr.replicas(Opsional, Integer)Jumlah replika Body-Based Router. Minimal:
1. Default:2.bbr.defaultBackend(Opsional)Backend yang menerima permintaan bahwa router tidak dapat cocok dengan penjadwal. Berisi
namestring danportinteger (default:8000).bbr.maxRequestBodyBytes(Opsional, Integer)Ukuran badan permintaan maksimum, dalam byte, yang disangga router untuk membaca bidang.
modelDefault dan maksimum:268435456(256 MiB).
tls-
Konfigurasi penghentian HTTPS untuk gateway. Berisi
acmArnbidang yang mereferensikan sertifikat ACM yang ada. Jikatlsdisetel dengan kosongacmArn, gateway akan mengeluarkan sertifikat secara otomatis dengan cert-manager dan mengimpornya ke ACM. auth(Opsional, Direkomendasikan)-
Minta konfigurasi otentikasi. Kami sangat menyarankan untuk mengaktifkan otentikasi token pembawa JWT di setiap gateway; ketika dihilangkan, gateway tidak memiliki otentikasi tingkat permintaan. Rute pemeriksaan kesehatan penyeimbang beban tetap tidak diautentikasi sehingga pemeriksaan kesehatan dapat berhasil tanpa token.
Berisi
auth.jwt.providerdengan bidang berikut:name(Diperlukan, String)Nama unik untuk penyedia.
issuer(Diperlukan, String)URL penerbit OIDC ().
https://...Gateway memvalidasiissklaim token terhadap nilai ini.remoteJWKS.uri(Diperlukan, String)Titik akhir HTTPS JWKS digunakan untuk memverifikasi tanda tangan JWT.
audiences(Opsional, Daftar)Nilai
audklaim yang diterima (hingga 8). Setidaknya satu dariaudiencesataurequiredClaimsharus ditetapkan.requiredClaims(Opsional, Daftar)Claim-based otorisasi (hingga 16 entri). Setiap entri memiliki
name,valueType(StringatauStringArray), danvalues(1-128 entri, masing-masing 1-1024 karakter). Saat disetel, gateway menolak permintaan secara default dan hanya menerima token yang nilai klaimnya cocok.
observability(Opsional)-
Konfigurasi observabilitas. Berisi
metrics.enabled, yang mengontrol OpenTelemetry sespan metrik. Metrik diaktifkan secara default. podDefaults(Opsional)-
Pengaturan pod default diterapkan pada pod Body-Based Router dan Endpoint Picker. Mendukung
resourcesnodeSelector,tolerations,affinity,,labels,annotations,env, danenvFrom. schedulers(Diperlukan, Daftar)-
Daftar konfigurasi penjadwal per-model, yang dikunci oleh.
nameSetidaknya satu penjadwal diperlukan, dan Anda dapat menentukan hingga 100. Setiap entri adalahSchedulerSpec, dijelaskan dalamSchedulerSpec bidang.
SchedulerSpec bidang
Setiap entri dalam spec.schedulers mengonfigurasi pemilihan routing dan endpoint untuk satu model. Penjadwal memberi nama yang dihasilkanInferencePool, Endpoint Picker, HttpRoute, dan sumber daya. EnvoyExtensionPolicy
name(Diperlukan, String)Nama penjadwal. Digunakan untuk memberi nama yang dihasilkan
InferencePool, Endpoint Picker, HttpRoute, dan sumber daya.EnvoyExtensionPolicyPanjang maksimum: 63 karakter.modelSelector(Wajib)Selector label Kubernetes yang memilih pod yang melayani model yang menjadi rute scheduler ini.
modelName(Diperlukan, String)Nama model cocok dengan
modelbidang di badan permintaan dan digunakan sebagai pencocokan header HttpRoute. Harus unik di seluruh penjadwal. Panjang maksimum: 253 karakter.targetPort(Opsional, Integer)Port pada pod yang melayani model yang menerima lalu lintas yang diteruskan. Rentang: 1—65535. Default:
8000.appProtocol(Opsional, String)Protokol aplikasi yang digunakan untuk menjangkau pod yang melayani model. Nilai-nilai yang valid:
http,kubernetes.io/h2c. Default:http.scheduler(Opsional, String)Jenis scheduler, yang memilih gambar Endpoint Picker. Nilai-nilai yang valid:
llm-d,epp. Default:llm-d.engineType(Opsional, String)Mesin inferensi berjalan di pod yang melayani model. Nilai ini memilih kumpulan nama metrik Prometheus yang digores oleh Endpoint Picker. Nilai-nilai yang valid:
vllm,sglang. Default:vllm.weights(Opsional)-
Bobot penilaian yang digunakan Endpoint Picker untuk menentukan peringkat pod kandidat. Semua bobot adalah bilangan bulat non-negatif. Saling eksklusif dengan
configMapRef. Bobot yang didukung:queueBerat untuk kedalaman antrian permintaan yang tertunda. Default:
2.kvCacheBerat untuk pemanfaatan cache KV. Default:
2.prefixBerat untuk afinitas awalan-cache. Default:
3.lruBerat untuk penilaian yang paling jarang digunakan. Hanya berlaku bila
scheduleradallm-d.loraAffinityBerat untuk afinitas adaptor LoRa.
runningRequestsBobot untuk jumlah permintaan yang berjalan pada sebuah pod.
predictedLatencyBobot untuk latensi permintaan yang diprediksi.
configMapRef(Opsional)Referensi ke ConfigMap yang memasok konfigurasi Endpoint Picker kustom, sebagai alternatif.
weightsBerisi wajibnamedan akey(default:default-plugins.yaml). Saling eksklusif denganweights.replicas(Opsional, Integer)Jumlah replika Endpoint Picker untuk scheduler ini. Minimal:
1. Default:2. Ketikareplicaslebih besar dari 1, Endpoint Picker berjalan dalam ketersediaan tinggi dengan pemilihan pemimpin.envdanenvFrom(Opsional)Variabel lingkungan ditambahkan ke wadah Endpoint Picker scheduler ini.
loraAdapters(Opsional, Daftar)Nama adaptor LoRa disajikan di belakang model penjadwal ini. Maksimum: 50 item, masing-masing hingga 253 karakter.
routeTimeout(Opsional, String)Batas waktu permintaan HttpRoute, sebagai durasi API Gateway (misalnya,
30satau).5mSetel0suntuk menonaktifkan batas waktu.logLevel(Opsional, Integer)Verbositas log Endpoint Picker. Rentang: 0—5.
Aturan validasi
Sumber InferenceGatewayConfig daya memberlakukan aturan validasi berikut. Sumber daya yang melanggar salah satu aturan ini ditolak.
-
Body-Based Router harus diaktifkan (
bbr.enabled: true) ketika lebih dari satu penjadwal dikonfigurasi. -
modelNameharus unik di semua penjadwal. -
Dalam penjadwal,
weightsdanconfigMapRefsaling eksklusif. -
weights.lruBobot hanya berlaku ketikaschedulertipe penjadwal adalahllm-d.
bidang status
Pengontrol melaporkan status gateway yang diamati di status subsumber daya.
conditionsKondisi Kubernetes standar yang menjelaskan keseluruhan status konfigurasi gateway.
schedulers-
Per-scheduler status. Setiap entri berisi:
nameNama penjadwal.
conditionsKondisi yang menggambarkan keadaan penjadwal ini.
currentSchedulerJenis penjadwal saat ini berlaku untuk entri ini.
rolloutStateStatus peluncuran penjadwal. Salah satu
Pending,Progressing,Available, atauDegraded.
observedGenerationGenerasi sumber daya yang paling baru direkonsiliasi oleh controller.
tlsStatus TLS, dilaporkan dalam mode masalah otomatis saja. Berisi
acmArn,issuedAt, dandnsNames.
Izin Kubernetes RBAC
Inference Gateway berjalan sebagai pengontrol tunggal di bawah akun inference-gateway-controller layanan Kubernetes di namespace. hyperpod-inference-system Body-Based Router, Endpoint Pickers per-scheduler, controller Gateway, dan InferenceGatewayConfig reconciler semuanya berjalan di bawah controller yang satu ini. Izin dengan cakupan klaster diberikan oleh nama dan pencocokan. ClusterRole sagemaker-inference-gateway-controller-supplement ClusterRoleBinding Bersama-sama mereka melengkapi akun layanan dan izin yang sudah disediakan bagan Gateway yang dibundel. Izin ini tercakup dan paling tidak memiliki hak istimewa, dan pengontrol tidak berjalan sebagai administrator klaster.
Tabel berikut mencantumkan izin cakupan cluster controller, dikelompokkan berdasarkan tujuan. Dalam tabel ini, akses penuh berarticreate,get,list,watch, updatepatch, dan delete kata kerja.
| Grup API | Sumber daya | Kata kerja | Tujuan |
|---|---|---|---|
inference.sagemaker.aws.amazon.com |
inferencegatewayconfigs, termasuk status dan finalizers subsumber dayanya |
get, listwatch,update,, dan patch untukinferencegatewayconfigs; getupdate, dan patch update untuk itustatus; finalizers |
Rekonsiliasi InferenceGatewayConfig sumber daya, tulis statusnya, dan kelola finalisernya. |
gateway.networking.k8s.io |
httproutes, gateways,
gatewayclasses |
Akses penuh untuk httproutes dangateways;get,list,watch,create, dan patch untuk gatewayclasses |
Perutean permintaan program melalui API Gateway. |
inference.networking.k8s.io |
inferencepools |
Akses penuh | Buat backend routing untuk setiap penjadwal. |
inference.networking.x-k8s.io |
inferencepools, inferenceobjectives,
inferencemodelrewrites |
get, list, watch |
Baca maksud perutean untuk pemilihan titik akhir. |
gateway.envoyproxy.io |
envoyextensionpolicies, envoyproxies,
httproutefilters, clienttrafficpolicies,
securitypolicies |
Akses penuh | Konfigurasikan bidang data gateway dan telemetri-nya. |
Inti ("") |
configmaps, services,
serviceaccounts, events, secrets,
pods |
Akses penuh untuk configmapsservices,, create danserviceaccounts; dan patch untukevents; getlist,, secrets dan watch pods |
Kelola beban kerja yang dihasilkan dan baca perutean dan status penyajian. |
apps |
deployments |
Akses penuh | Kelola penerapan Body-Based Router dan Endpoint Picker. |
rbac.authorization.k8s.io |
roles, rolebindings |
Akses penuh | Buat Pemilih Titik Akhir per-scheduler. Role |
discovery.k8s.io, coordination.k8s.io |
endpointslices; leases |
get,list, dan watch untukendpointslices; getlist,watch,create,update, dan patch untuk leases |
Penemuan titik akhir dan pemilihan pemimpin Endpoint Picker. |
networking.k8s.io |
ingresses, networkpolicies |
Akses penuh | Menyediakan jalur Application Load Balancer melalui Load AWS Balancer Controller. |
cert-manager.io |
issuers, certificates (denganget,list, dan watch pada intisecrets) |
Akses penuh | Auto-issue sertifikat TLS bila spec.tls disetel tanpa. acmArn |
apiextensions.k8s.io |
customresourcedefinitions |
create; danget,update,patch, dan delete dibatasi oleh nama sumber daya ke CRD API Gateway tertentu yang dikelola gateway |
Instal definisi sumber daya khusus yang bergantung pada gateway. |
catatan
createKata kerja on tidak customresourcedefinitions terbatas pada nama sumber daya tertentu. Pengontrol menginstal definisi sumber daya kustom Gateway API yang bergantung padanya dengan menerapkannya saat startup dari image kontainernya sendiri, karena ukuran gabungannya melebihi batas muatan add-on Amazon EKS. Kubernetes tidak mengizinkan create kata kerja dibatasi pada sumber daya bernama, jadi izin ini harus luas. Semua operasi lain pada definisi sumber daya kustom— getupdate,patch,, dan delete —dibatasi pada definisi sumber daya khusus tertentu yang dikelola gateway. Izin ini memungkinkan mendefinisikan hanya jenis CRD tersebut; itu tidak memberikan akses ke data sumber daya kustom apa pun.
Pengontrol juga membuat peran namespaced berikut saat runtime, tergantung pada konfigurasi gateway Anda:
-
Body-Based Router —Ruang nama
Roleyang memberikanget,, danwatchseterusnyalist, yang dibaca router untukconfigmapsmenyelesaikan adaptor LoRa. Ketika router berjalan di beberapa ruang nama, ini adalah sebagaiClusterRolegantinya. -
Endpoint Picker —Namespace yang memberikan akses baca ke
Role.podsKetika Endpoint Picker berjalan dengan lebih dari satu replika, pengontrol juga membuat pemilihan pemimpinRoleuntuk dan.leaseseventsSaat metrik Prometheus diaktifkan, pengontrol membuatClusterRoleopsional yangcreatememberikantokenreviewsakses aktif dan baca ke titik akhir.subjectaccessreviews/metrics
catatan
Saat Anda mengaktifkan gateway melalui Operator HyperPod Inferensi, pengontrol operator sendiri memiliki izin untuk membuat dan memperbarui InferenceGatewayConfig sumber daya. Untuk bagaimana operator menghubungkan model ke gateway, lihatIntegrasi dengan HyperPod Operator Inferensi.
Beberapa izin ini hanya berlaku ketika fitur yang sesuai diaktifkan.
Observabilitas
Inference Gateway memancarkan metrik Prometheus dari setiap komponen gateway. Baik Body-Based Router dan masing-masing Endpoint Picker mengekspos endpoint Prometheus standar pada pod mereka. /metrics Body-Based Pod router berjalan di hyperpod-inference-system namespace; Pod Endpoint Picker berjalan di namespace yang sama dengan. InferenceGatewayConfig Metrik mencakup penghitung dan durasi permintaan per model, latensi penjadwalan dan waktu eksekusi per plugin di dalam Endpoint Picker, dan metrik kumpulan agregat seperti pemanfaatan cache KV rata-rata dan kedalaman antrian. Model-server Metrik pod (misalnya, dari VllM atau SGLang) dipancarkan oleh server model itu sendiri; Endpoint Picker menggoresnya untuk mencetak pod kandidat.
spec.observability.metrics.enabledKapan true (default), pengontrol gateway menyuntikkan sespan OpenTelemetry Kolektor ke setiap pod Body-Based Router dan Endpoint Picker. Sidecar meneruskan metrik ini ke tumpukan observabilitas HyperPod inferensi, di mana dasbor Grafana bawaan memunculkannya di samping metrik model-server dan cluster. Untuk detail penyiapan dan dasbor, lihatMenerapkan observabilitas inferensi pada cluster HyperPod. Atur bidang false untuk melewati injeksi sespan. Untuk referensi bidang, lihat observability di bawahbidang spesifikasi.
Untuk melihat metrik gateway di Grafana Terkelola Amazon, buka folder Dasbor Inferensi dan pilih dasbor Inference Gateway. Dasbor melaporkan ketersediaan di seluruh gateway, tingkat permintaan, dan latensi ujung ke ujung, throughput per penjadwal, latensi, dan kesalahan untuk setiap model, dan tingkat di mana Router menyelesaikan nama model dari badan permintaan. Body-Based
Contoh
Contoh berikut menunjukkan InferenceGatewayConfig konfigurasi umum dan cara memanggil gateway.
Konfigurasi multi-model minimal
Contoh ini merutekan ke penjadwal llm-d dengan TLS yang dikeluarkan secara otomatis. Karena tls disetel ke objek kosong, gateway mengeluarkan sertifikat secara otomatis dan mengimpornya ke ACM.
apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1 kind: InferenceGatewayConfig metadata: name: inference-gateway-demo namespace: inference-gateway spec: bbr: enabled: true tls: {} # Auto-issue a certificate via cert-manager and import to ACM. schedulers: - name: llama modelName: "meta-llama/Llama-3.2-1B-Instruct" modelSelector: matchLabels: app: vllm-llama targetPort: 8000 scheduler: llm-d
Penjadwal SGlang dengan bobot eksplisit
Contoh ini menggunakan tipe epp scheduler dengan sglang engine dan menetapkan bobot penilaian Endpoint Picker eksplisit.
spec: bbr: enabled: true schedulers: - name: qwen7b modelName: "Qwen/Qwen2.5-7B-Instruct" modelSelector: matchLabels: app: sglang-qwen7b targetPort: 8000 scheduler: epp engineType: sglang logLevel: 4 weights: kvCache: 2 prefix: 3 runningRequests: 2
Adaptor LoRa ConfigMap
Body-Based Router menemukan adaptor LoRa dan model dasarnya dari ConfigMap label untuk manajemen BBR. Router menggunakan pemetaan ini untuk menyelesaikan nama adaptor di badan permintaan ke model dasarnya.
apiVersion: v1 kind: ConfigMap metadata: name: deepseek-adapters labels: inference.networking.k8s.io/bbr-managed: "true" data: baseModel: deepseek/vllm-deepseek-r1 adapters: | - ski-resorts - movie-critique
Memanggil gateway
Gateway melayani titik akhir OpenAI-compatible inferensi. Ini adalah kontrak pemanggilan runtime untuk mengirim permintaan inferensi melalui gateway; ini bukan operasi API. AWS Kirim permintaan ke titik akhir gateway dengan model bidang yang disetel ke modelName penjadwal target. Body-Based Router membaca bidang ini untuk merutekan permintaan.
curl https://your-gateway-endpoint/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "meta-llama/Llama-3.1-8B-Instruct", "messages": [ {"role": "user", "content": "Hello"} ] }'