Gateway with Inference Extension は Envoy Gateway に基づいています。サービスタイプ、デプロイメントのレプリカ数、リソースなどのゲートウェイパラメーターは、EnvoyProxy リソース構成を変更することで調整できます。このトピックでは、さまざまなスコープを持つゲートウェイのレプリカ数とリソース使用量を構成する方法について説明します。
構成の説明
Gateway with Inference Extension コンポーネントを使用して生成 AI 推論サービスを管理する場合、GatewayClass および Gateway リソースを作成します。
EnvoyProxy リソースを関連付けることで、Gateway のレプリカ数やリソース使用量などの実行時パラメーターを定義できます。リソースは 2 つの方法で関連付けることができます。
きめ細かい構成 (単一のゲートウェイの場合):
EnvoyProxyリソースを特定のGatewayリソースに直接関連付けて、Gatewayを個別に構成します。統一構成 (ゲートウェイクラス全体):
EnvoyProxyリソースをGatewayClassに関連付けます。これにより、このGatewayClass内で個別に構成されていないすべてのGatewayリソースは、これらの統一されたリソースパラメーターを継承します。
両方の構成が存在する場合、個別に構成されたゲートウェイリソースのパラメーターが優先されます。
ゲートウェイの構成を指定する
Gateway リソースの infrastructure フィールドで EnvoyProxy リソースを参照することで、Gateway のレプリカ数とリソース使用量を構成できます。以下に例を示します。
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: 2Gi上記の例では、Gateway リソースの infrastructure フィールドが parametersRef フィールドを使用して、custom-proxy-config という名前の EnvoyProxy リソースを参照しています。これにより、レプリカ数とリソース使用量が構成されます。
ゲートウェイリソースは、同じ名前空間内の EnvoyProxy リソースのみを参照できます。
GatewayClass の構成を指定する
GatewayClass リソースで EnvoyProxy リソースを参照することで、GatewayClass に属するすべての Gateway リソースのレプリカ数とリソース使用量を設定することもできます。 以下に例を示します。
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: 2Gi上記の例では、GatewayClass リソースの parametersRef フィールドが、custom-proxy-config という名前の EnvoyProxy リソースを参照して、レプリカ数とリソース使用量を構成しています。
EnvoyProxy リソースの完全な構成と共通フィールド
次のコードは、EnvoyProxy リソースの完全な構成例を示しています。
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
name: custom-proxy-config
spec:
provider:
type: Kubernetes
kubernetes:
envoyDeployment:
replicas: 2 # envoyHpa も構成されている場合は、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 # または 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: 1envoyDeployment と envoyHpa の両方を構成する場合、envoyDeployment の下に replicas を構成する必要はありません。
このセクションでは、いくつかの一般的なフィールドのみをリストしています。EnvoyProxy リソースの完全な定義については、「EnvoyProxy」をご参照ください。
フィールド | タイプ | 必須 | 説明 |
envoyDeployment | いいえ | カスタムゲートウェイのワークロード構成。 | |
envoyService | いいえ | カスタムゲートウェイのサービス構成。 | |
envoyHpa | いいえ | カスタムゲートウェイの Horizontal Pod Autoscaler (HPA) 構成。 | |
envoyPDB | いいえ | カスタムゲートウェイの PodDisruptionBudget (PDB) 構成。 |