En este tema se proporciona información de referencia para el paquete Contour with Envoy.
Acerca de Contour y Envory
Contour (https://projectcontour.io/) es un controlador de entrada de Kubernetes que incluye el proxy HTTP inverso Envoy. Contour con Envoy se utiliza habitualmente con otros paquetes, como ExternalDNS, Prometheus y Harbor.
Componentes de Contour
Contenedor | Tipo de recurso | Réplicas | Descripción |
---|---|---|---|
Envoy | DaemonSet | 3 | Proxy inverso de alto rendimiento |
Contour | Implementación | 2 | Servidor de administración y configuración para Envoy |
Valores de datos de Contour
A continuación se muestra un ejemplo contour-data-values.yaml
.
infrastructure_provider: vsphere namespace: tanzu-system-ingress contour: configFileContents: {} useProxyProtocol: false replicas: 2 pspNames: "vmware-system-restricted" logLevel: info envoy: service: type: LoadBalancer annotations: {} nodePorts: http: null https: null externalTrafficPolicy: Cluster disableWait: false hostPorts: enable: true http: 80 https: 443 hostNetwork: false terminationGracePeriodSeconds: 300 logLevel: info pspNames: null certificates: duration: 8760h renewBefore: 360h
Configuración de Contour
contour-data-values.yaml
. En la tabla se enumeran y se describen los parámetros disponibles.
Parámetro | Descripción | Tipo | Predeterminado |
---|---|---|---|
infrastructure_provider | Proveedor de infraestructura. Valores admitidos: vsphere, aws, azure | string | Parámetro obligatorio |
contour.namespace | Espacio de nombres en el que se implementará Contour | string | tanzu-system-ingress |
contour.config.requestTimeout | Tiempo de espera de solicitud del cliente que se debe pasar a Envoy | time.Duration | 0s (Consulte la sección a continuación para obtener más información) |
contour.config.server.xdsServerType | Tipo de servidor XDS que se utilizará: valores compatibles: contour o envoy | string | Nulo |
contour.config.tls.minimumProtocolVersion | Versión mínima de TLS que Contour negociará | string | 1,1 |
contour.config.tls.fallbackCertificate.name | Nombre del secreto que contiene el certificado de reserva para las solicitudes que no coinciden con el SNI definido para un vhost | string | Nulo |
contour.config.tls.fallbackCertificate.namespace | Espacio de nombres del secreto que contiene el certificado de reserva | string | Nulo |
contour.config.tls.envoyClientCertificate.name | Nombre del secreto que se utilizará como certificado del cliente, clave privada para la conexión TLS al servicio back-end. | string | Nulo |
contour.config.tls.envoyClientCertificate.namespace | Espacio de nombres del secreto que se utilizará como certificado del cliente, clave privada para la conexión TLS al servicio back-end. | string | Nulo |
contour.config.leaderelection.configmapName | Nombre del configmap que se utilizará para contour leaderelection | string | leader-elect |
contour.config.leaderelection.configmapNamespace | Espacio de nombres de contour leaderelection configmap | string | tanzu-system-ingress |
contour.config.disablePermitInsecure | Deshabilita el campo ingressroute permitInsecure | booleano | false |
contour.config.accesslogFormat | Formato de registro de acceso | string | envoy |
contour.config.jsonFields | Campos que se registrarán | array of strings | Documento del paquete de Envoy |
contour.config.useProxyProtocol | https://projectcontour.io/guides/proxy-proto/ | booleano | false |
contour.config.defaultHTTPVersions | Contour debería programar a Envoy para que sirva estas versiones HTTP | array of strings | "HTTP/1.1 HTTP2" |
contour.config.timeouts.requestTimeout | El tiempo de espera de una solicitud completa | time.Duration | Nulo (el tiempo de espera está deshabilitado) |
contour.config.timeouts.connectionIdleTimeout | El tiempo de espera antes de finalizar una conexión inactiva | time.Duration | 60s |
contour.config.timeouts.streamIdleTimeout | Tiempo de espera antes de finalizar una solicitud o un flujo sin actividad | time.Duration | 5m |
contour.config.timeouts.maxConnectionDuration | Tiempo de espera antes de finalizar una conexión, independientemente de si hay actividad o no | time.Duration | Nulo (el tiempo de espera está deshabilitado) |
contour.config.timeouts.ConnectionShutdownGracePeriod | Tiempo que se debe esperar entre el envío de un GOAWAY inicial y final | time.Duration | 5s |
contour.config.cluster.dnsLookupFamily | dns-lookup-family que se utilizará para las solicitudes de subida a servicios de tipo externalName desde una ruta HTTPProxy | string | Nulo (valores admitidos: auto, v4, v6) |
contour.config.debug | Activa la depuración de Contour | booleano | false |
contour.config.ingressStatusAddress | Dirección que se establecerá en el estado de cada recurso de entrada. | string | Nulo |
contour.certificate.duration | Duración del certificado de Contour | time.Duration | 8760h |
contour.certificate.renewBefore | Duración antes de la renovación del certificado de Contour | time.Duration | 360h |
contour.deployment.replicas | Número de réplicas de Contour | entero | 2 |
contour.image.repository | Ubicación del repositorio con la imagen de Contour. El valor predeterminado es el registro de VMware público. Cambie este valor si utiliza un repositorio privado (p. ej., un entorno aislado). | string | projects.registry.vmware.com/tkg |
contour.image.name | Nombre de la imagen de Contour | string | contour |
contour.image.tag | Etiqueta de la imagen de Contour. Es posible que este valor tenga que actualizarse si va a actualizar la versión de Contour. | string | v1.11.0_vmware.1 |
contour.image.pullPolicy | Directiva de extracción de imagen de Contour | string | IfNotPresent |
envoy.image.repository | Ubicación del repositorio con la imagen de Envoy. El valor predeterminado es el registro de VMware público. Cambie este valor si utiliza un repositorio privado (p. ej., un entorno aislado). | string | projects.registry.vmware.com/tkg |
envoy.image.name | Nombre de la imagen de Envoy | string | envoy |
envoy.image.tag | Etiqueta de la imagen de Envoy. Es posible que este valor tenga que actualizarse si va a actualizar la versión de Envoy. | string |
|
envoy.image.pullPolicy | Directiva de extracción de la imagen de Envoy | string | IfNotPresent |
envoy.hostPort.enable | Etiqueta para exponer los puertos de Envoy en el host | booleano | true |
envoy.hostPort.http | Puerto de host HTTP de Envoy | entero | 80 |
envoy.hostPort.https | Puerto de host HTTPS de Envoy | entero | 443 |
envoy.service.type | Tipo de servicio para exponer Envoy. Valores admitidos: ClusterIP, NodePort y LoadBalancer | string | Parámetro obligatorio para vSphere: NodePort o LoadBalancer, AWS: LoadBalancer, Azure: LoadBalancer |
envoy.service.annotations | Anotaciones en el servicio Envoy | Mapa (valores de clave) | Mapa vacío |
envoy.service.externalTrafficPolicy | Directiva de tráfico externo del servicio Envoy. Valores admitidos: Local, Clúster | string | Clúster |
envoy.service.nodePort.http | NodePort deseado para el servicio de tipo NodePort utilizado para las solicitudes http | entero | Nulo: Kubernetes asigna un puerto de nodo dinámico |
envoy.service.nodePort.https | NodePort deseado para el servicio de tipo NodePort utilizado para las solicitudes HTTPS | entero | Nulo: Kubernetes asigna un puerto de nodo dinámico |
envoy.deployment.hostNetwork | Ejecuta envoy en hostNetwork | booleano | false |
envoy.service.aws.LBType | Tipo AWS LB que se utilizará para exponer el servicio Envoy. Valores admitidos: clásico, nlb | string | clásico |
envoy.loglevel | Nivel de registro que se utilizará para Envoy | string | info |
Tiempo de espera de ruta para las descargas de archivo
El parámetro contour.config.requestTimeout
define la duración del tiempo de espera de la ruta de Contour. El valor predeterminado es 0s
. Si utiliza Contour para la transferencia de archivos, es posible que deba ajustar este valor.
Según la documentación de Contour , un valor de tiempo de espera de 0s
indica a Contour que utilice el tiempo de espera de Envoy. Según la documentación de Envoy, Envoy tiene un tiempo de espera de 15 segundos de forma predeterminada. Además, Envoy espera que toda la operación de solicitud-respuesta se complete dentro del intervalo de tiempo de espera.
Esto significa que con la configuración predeterminada de tiempo de espera de Contour de 0s
, la transferencia de archivos debe completarse en 15 segundos. Para las transferencias de archivos grandes, es posible que este tiempo no sea suficiente. Para deshabilitar el tiempo de espera predeterminado de Envoy, establezca el valor de contour.config.requestTimeout
en 0
.