Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Custom Gateway configuration

Dernière mise à jour :Aug 11, 2026

La passerelle avec Inference Extension s'appuie sur Envoy Gateway. Pour ajuster les paramètres d'exécution (nombre de réplicas, ressources CPU et mémoire, type de service et comportement de mise à l'échelle), modifiez la ressource personnalisée EnvoyProxy et associez-la à une ressource Gateway ou GatewayClass.

Fonctionnement

Deux niveaux de configuration sont disponibles :

Niveau Méthode d'association Effet
Niveau Gateway Référencez la ressource EnvoyProxy depuis le champ infrastructure.parametersRef d'une ressource Gateway Seule cette Gateway utilise les paramètres personnalisés
Niveau GatewayClass Référencez la ressource EnvoyProxy depuis le champ parametersRef d'une ressource GatewayClass Toutes les Gateways de cette classe héritent des paramètres, sauf si elles définissent leurs propres valeurs

Lorsque les deux niveaux sont configurés, les paramètres définis au niveau de la Gateway priment.

Quand utiliser chaque niveau :

  • Utilisez la configuration au niveau Gateway lorsque différentes Gateways appartenant à la même classe nécessitent des profils de ressources distincts (par exemple, un nombre de réplicas différent pour la production et pour l'environnement de préproduction).

  • Optez pour la configuration au niveau GatewayClass afin d'appliquer une base commune à toutes les Gateways d'une classe, tout en permettant aux Gateways individuelles de ne remplacer que les champs qui diffèrent.

Prérequis

Avant de configurer la passerelle, tenez compte des contraintes suivantes :

  • Une ressource Gateway ne peut référencer une ressource EnvoyProxy située dans le même namespace.

  • Si vous configurez à la fois envoyDeployment.replicas et envoyHpa, omettez le champ replicas sous envoyDeployment. Le Horizontal Pod Autoscaler (HPA) gère alors le nombre de réplicas.

Configurer une seule Gateway

Référencez une ressource EnvoyProxy depuis le champ infrastructure.parametersRef de la ressource 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

Configurer toutes les Gateways d'une GatewayClass

Référencez une ressource EnvoyProxy depuis le champ parametersRef de la ressource GatewayClass :

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

Toutes les ressources Gateway associées à cette GatewayClass héritent de ces paramètres. Une ressource Gateway qui référence sa propre ressource EnvoyProxy remplace ces valeurs définies au niveau de la classe, mais uniquement pour cette Gateway spécifique.

Référence des champs EnvoyProxy

L'exemple suivant présente l'ensemble complet des champs couramment utilisés :

apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
  name: custom-proxy-config
spec:
  provider:
    type: Kubernetes
    kubernetes:
      envoyDeployment:
        replicas: 2          # Omit if envoyHpa is also configured.
        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 # or 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: 1

Le tableau suivant décrit les champs de premier niveau sous kubernetes :

Champ Type Obligatoire Description
envoyDeployment KubernetesDeploymentSpec Non Configuration de la charge de travail pour la passerelle personnalisée.
envoyService KubernetesServiceSpec Non Configuration du service pour la passerelle personnalisée.
envoyHpa KubernetesHorizontalPodAutoscalerSpec Non Configuration HPA pour la passerelle personnalisée.
envoyPDB KubernetesPodDisruptionBudgetSpec Non Configuration PodDisruptionBudget (PDB) pour la passerelle personnalisée.

Pour consulter la spécification complète de l'API EnvoyProxy, voir la documentation EnvoyProxy.