Gateway with Inference Extension didasarkan pada Envoy Gateway. Anda dapat menyesuaikan parameter Gateway, seperti jenis layanan, jumlah replika penerapan, dan sumber daya, dengan memodifikasi konfigurasi sumber daya EnvoyProxy. Topik ini menjelaskan cara mengonfigurasi jumlah replika dan penggunaan sumber daya untuk Gateway dengan cakupan berbeda.
Deskripsi konfigurasi
Saat menggunakan komponen Gateway with Inference Extension untuk mengelola layanan inferensi AI generatif, Anda membuat sumber daya GatewayClass dan Gateway.
Anda dapat menentukan parameter waktu proses suatu Gateway, seperti jumlah replika dan penggunaan sumber daya, dengan mengaitkan sumber daya EnvoyProxy. Terdapat dua cara untuk mengaitkan sumber daya tersebut:
Konfigurasi tingkat detail (untuk satu Gateway): Mengaitkan sumber daya
EnvoyProxysecara langsung ke sumber dayaGatewaytertentu untuk mengonfigurasiGatewaytersebut secara independen.Konfigurasi terpadu (untuk seluruh kelas Gateway): Mengaitkan sumber daya
EnvoyProxykeGatewayClass. Dengan demikian, semua sumber dayaGatewaydalamGatewayClassini yang tidak dikonfigurasi secara independen akan mewarisi parameter sumber daya terpadu tersebut.
Jika kedua konfigurasi tersedia, parameter dari sumber daya Gateway yang dikonfigurasi secara independen memiliki prioritas lebih tinggi.
Menentukan konfigurasi untuk Gateway
Anda dapat mengonfigurasi jumlah replika dan penggunaan sumber daya untuk Gateway dengan mereferensikan sumber daya EnvoyProxy di bidang infrastructure sumber daya Gateway. Berikut contohnya:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: eg
spec:
gatewayClassName: eg
infrastructure:
parametersRef:
group: gateway.envoyproxy.io
kind: EnvoyProxy
name: custom-proxy-config
listeners:
- name: http
protocol: HTTP
port: 80
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
name: custom-proxy-config
spec:
provider:
type: Kubernetes
kubernetes:
envoyDeployment:
replicas: 2
container:
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1
memory: 2GiPada contoh di atas, bidang infrastructure dari sumber daya Gateway menggunakan bidang parametersRef untuk mereferensikan sumber daya EnvoyProxy bernama custom-proxy-config, sehingga mengonfigurasi jumlah replika dan penggunaan sumber daya.
Sumber daya Gateway hanya dapat mereferensikan sumber daya EnvoyProxy dalam namespace yang sama.
Menentukan konfigurasi untuk GatewayClass
Anda juga dapat mengonfigurasi jumlah replika dan penggunaan sumber daya untuk semua sumber daya Gateway yang termasuk dalam GatewayClass dengan mereferensikan sumber daya EnvoyProxy di sumber daya GatewayClass. Berikut contohnya:
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: eg
spec:
controllerName: gateway.envoyproxy.io/gatewayclass-controller
parametersRef:
group: gateway.envoyproxy.io
kind: EnvoyProxy
name: custom-proxy-config
namespace: default
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
name: custom-proxy-config
namespace: default
spec:
provider:
type: Kubernetes
kubernetes:
envoyDeployment:
replicas: 2
container:
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1
memory: 2GiPada contoh di atas, bidang parametersRef dari sumber daya GatewayClass mereferensikan sumber daya EnvoyProxy bernama custom-proxy-config untuk mengonfigurasi jumlah replika dan penggunaan sumber daya.
Konfigurasi lengkap dan bidang umum sumber daya EnvoyProxy
Kode berikut memberikan contoh konfigurasi lengkap untuk sumber daya EnvoyProxy:
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
name: custom-proxy-config
spec:
provider:
type: Kubernetes
kubernetes:
envoyDeployment:
replicas: 2 # Jika envoyHpa juga dikonfigurasi, Anda tidak perlu mengonfigurasi replicas.
strategy:
rollingUpdate:
maxSurge: 2
maxUnavailable: 1
pod:
affinity: ...
tolerations: ...
nodeSelector: ...
container:
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1
memory: 2Gi
envoyService:
annotations:
key: value
labels:
key: value
type: LoadBalancer
loadBalancerClass: ...
externalTrafficPolicy: Cluster # atau Local
envoyHpa:
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80
envoyPDB:
minAvailable: 1Jika Anda mengonfigurasi envoyDeployment dan envoyHpa secara bersamaan, Anda tidak perlu mengonfigurasi replicas di bawah envoyDeployment.
Bagian ini hanya mencantumkan beberapa bidang umum. Untuk definisi lengkap sumber daya EnvoyProxy, lihat EnvoyProxy.
Bidang | Tipe | Wajib | Deskripsi |
envoyDeployment | Tidak | Konfigurasi beban kerja untuk Gateway kustom. | |
envoyService | Tidak | Konfigurasi layanan untuk Gateway kustom. | |
envoyHpa | Tidak | Konfigurasi Horizontal Pod Autoscaler (HPA) untuk Gateway kustom. | |
envoyPDB | Tidak | Konfigurasi PodDisruptionBudget (PDB) untuk Gateway kustom. |