View a markdown version of this page

Gerbang Inferensi untuk Inferensi Amazon SageMaker HyperPod - Amazon SageMaker AI

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-metrics bendera 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.2 add-on SageMaker HyperPod Inference Amazon. Instal atau perbarui ke versi add-on terbaru yang tersedia. Jika klaster Anda tidak mengenali InferenceGatewayConfig sumber 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.tls disetel tanpa file. acmArn

  • AWS Load Balancer Controller harus diinstal untuk tipe titik akhir Application Load Balancer.

  • Gateway menggunakan hyperpod-inference-system namespace.

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 memilikiacm:ImportCertificate,acm:AddTagsToCertificate,acm:DescribeCertificate, dan acm:DeleteCertificate izin melalui IRSA.

Minta otentikasi (disarankan)

Kami sangat menyarankan untuk mengaktifkan otentikasi JWT di setiap gateway dengan menyetel pada. spec.auth.jwt InferenceGatewayConfig Ketika spec.auth dihilangkan, 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. Lihat spec.auth di 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 InferenceEndpointConfig dan JumpStartModel (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. InferencePool EnvoyExtensionPolicy

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 InferenceGatewayConfig daya 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.enabled pada modelInferenceEndpointConfig. Operator membuat dan memelihara entri penjadwal untuk model.

  • Penulis InferenceGatewayConfig sumber 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

InferenceGatewayConfig metadata sumber daya
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 name string dan port integer (default:8000).

bbr.maxRequestBodyBytes(Opsional, Integer)

Ukuran badan permintaan maksimum, dalam byte, yang disangga router untuk membaca bidang. model Default dan maksimum: 268435456 (256 MiB).

tls

Konfigurasi penghentian HTTPS untuk gateway. Berisi acmArn bidang yang mereferensikan sertifikat ACM yang ada. Jika tls disetel 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.provider dengan bidang berikut:

name(Diperlukan, String)

Nama unik untuk penyedia.

issuer(Diperlukan, String)

URL penerbit OIDC (). https://... Gateway memvalidasi iss klaim token terhadap nilai ini.

remoteJWKS.uri(Diperlukan, String)

Titik akhir HTTPS JWKS digunakan untuk memverifikasi tanda tangan JWT.

audiences(Opsional, Daftar)

Nilai aud klaim yang diterima (hingga 8). Setidaknya satu dari audiences atau requiredClaims harus ditetapkan.

requiredClaims(Opsional, Daftar)

Claim-based otorisasi (hingga 16 entri). Setiap entri memilikiname, valueType (StringatauStringArray), dan values (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. Berisimetrics.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. name Setidaknya 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 dihasilkanInferencePool, Endpoint Picker, HttpRoute, dan sumber daya. EnvoyExtensionPolicy Panjang 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 model bidang 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 denganconfigMapRef. Bobot yang didukung:

queue

Berat untuk kedalaman antrian permintaan yang tertunda. Default: 2.

kvCache

Berat untuk pemanfaatan cache KV. Default: 2.

prefix

Berat untuk afinitas awalan-cache. Default: 3.

lru

Berat untuk penilaian yang paling jarang digunakan. Hanya berlaku bila scheduler adallm-d.

loraAffinity

Berat untuk afinitas adaptor LoRa.

runningRequests

Bobot untuk jumlah permintaan yang berjalan pada sebuah pod.

predictedLatency

Bobot untuk latensi permintaan yang diprediksi.

configMapRef (Opsional)

Referensi ke ConfigMap yang memasok konfigurasi Endpoint Picker kustom, sebagai alternatif. weights Berisi wajib name dan a key (default:default-plugins.yaml). Saling eksklusif denganweights.

replicas(Opsional, Integer)

Jumlah replika Endpoint Picker untuk scheduler ini. Minimal:1. Default: 2. Ketika replicas lebih besar dari 1, Endpoint Picker berjalan dalam ketersediaan tinggi dengan pemilihan pemimpin.

envdan envFrom (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, 30s atau). 5m Setel 0s untuk 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, weights dan configMapRef saling eksklusif.

  • weights.lruBobot hanya berlaku ketika scheduler tipe penjadwal adalahllm-d.

bidang status

Pengontrol melaporkan status gateway yang diamati di status subsumber daya.

conditions

Kondisi Kubernetes standar yang menjelaskan keseluruhan status konfigurasi gateway.

schedulers

Per-scheduler status. Setiap entri berisi:

name

Nama penjadwal.

conditions

Kondisi yang menggambarkan keadaan penjadwal ini.

currentScheduler

Jenis penjadwal saat ini berlaku untuk entri ini.

rolloutState

Status peluncuran penjadwal. Salah satuPending,Progressing,Available, atauDegraded.

observedGeneration

Generasi sumber daya yang paling baru direkonsiliasi oleh controller.

tls

Status TLS, dilaporkan dalam mode masalah otomatis saja. BerisiacmArn,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.

Izin pengontrol Inferensi Gateway
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 Role yang memberikanget,, dan watch seterusnyalist, yang dibaca router untuk configmaps menyelesaikan adaptor LoRa. Ketika router berjalan di beberapa ruang nama, ini adalah sebagai ClusterRole gantinya.

  • Endpoint Picker —Namespace yang memberikan akses baca keRole. pods Ketika Endpoint Picker berjalan dengan lebih dari satu replika, pengontrol juga membuat pemilihan pemimpin Role untuk dan. leases events Saat metrik Prometheus diaktifkan, pengontrol membuat ClusterRole opsional yang create memberikan tokenreviews akses 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"} ] }'