Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Configuración de Gateway personalizado

Última actualización: Sep 04, 2026

Gateway con Inference Extension se basa en Envoy Gateway. Para ajustar los parámetros de ejecución (réplicas, recursos de CPU y memoria, tipo de servicio y comportamiento de escalado), modifique el recurso personalizado EnvoyProxy y vincúlelo a un Gateway o a una GatewayClass.

Cómo funciona

Existen dos ámbitos de configuración:

Ámbito

Cómo vincular

Efecto

Nivel de Gateway

Referencie EnvoyProxy desde infrastructure.parametersRef de un Gateway

Solo ese Gateway usa los parámetros personalizados

Nivel de GatewayClass

Referencie EnvoyProxy desde parametersRef de una GatewayClass

Todos los Gateways de esa clase heredan los parámetros, a menos que definan los suyos propios

Si se configuran ambos ámbitos, los parámetros de nivel de Gateway tienen prioridad.

Cuándo usar cada ámbito:

  • Use la configuración de nivel de Gateway cuando distintos Gateways de la misma clase requieran perfiles de recursos diferentes (por ejemplo, distinto número de réplicas para producción y pruebas).

  • Use la configuración de nivel de GatewayClass para aplicar una línea base compartida a todos los Gateways de una clase y permitir que cada Gateway sobrescriba solo los campos que difieran.

Antes de empezar

Antes de configurar, considere las siguientes restricciones:

  • Un recurso Gateway solo puede hacer referencia a un EnvoyProxy en el mismo namespace.

  • Si configura tanto envoyDeployment.replicas como envoyHpa, omita replicas en envoyDeployment. El Horizontal Pod Autoscaler (HPA) administra el recuento de réplicas.

Configurar un solo Gateway

Haga referencia a un recurso EnvoyProxy desde el campo infrastructure.parametersRef del 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

Configurar todos los Gateways en una GatewayClass

Haga referencia a un recurso EnvoyProxy desde el campo parametersRef de la 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

Todos los recursos Gateway bajo esta GatewayClass heredan estos parámetros. Un Gateway que haga referencia a su propio EnvoyProxy sobrescribe estos valores de nivel de clase solo para ese Gateway.

Referencia de campos de EnvoyProxy

El siguiente ejemplo muestra el conjunto completo de campos de uso común:

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

La siguiente tabla describe los campos de nivel superior bajo kubernetes:

Campo

Tipo

Obligatorio

Descripción

envoyDeployment

KubernetesDeploymentSpec

No

Configuración de la carga de trabajo para el Gateway personalizado.

envoyService

KubernetesServiceSpec

No

Configuración del servicio para el Gateway personalizado.

envoyHpa

KubernetesHorizontalPodAutoscalerSpec

No

Configuración de HPA para el Gateway personalizado.

envoyPDB

KubernetesPodDisruptionBudgetSpec

No

Configuración de PodDisruptionBudget (PDB) para el Gateway personalizado.

Para consultar la especificación completa de la API de EnvoyProxy, consulte EnvoyProxy.