Questo argomento fornisce informazioni di riferimento per il pacchetto Contour con Envoy.
Informazioni su Contour ed Envory
Contour (https://projectcontour.io/) è un controller in ingresso Kubernetes che include il proxy HTTP inverso Envoy. Contour con Envoy viene in genere utilizzato con altri pacchetti, come ExternalDNS, Prometheus e Harbor.
Componenti di Contour
Container | Tipo di risorsa | Repliche | Descrizione |
---|---|---|---|
Envoy | DaemonSet | 3 | Proxy inverso ad alte prestazioni |
Contour | Distribuzione | 2 | Server di gestione e configurazione per Envoy. |
Valori dei dati di Contour
Di seguito è disponibile un contour-data-values.yaml
di esempio.
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
Configurazione di Contour
contour-data-values.yaml
. La tabella elenca e descrive i parametri disponibili.
Parametro | Descrizione | Tipo | Predefinito |
---|---|---|---|
infrastructure_provider | Provider dell'infrastruttura. Valori supportati: vsphere, aws, azure | stringa | Parametro obbligatorio |
contour.namespace | Spazio dei nomi in cui Contour verrà distribuito | stringa | tanzu-system-ingress |
contour.config.requestTimeout | Timeout della richiesta client da trasmettere a Envoy | time.Duration | 0s (Per informazioni dettagliate, vedere la sezione seguente) |
contour.config.server.xdsServerType | Tipo di server XDS da utilizzare. Valori supportati: contour o envoy | stringa | Null |
contour.config.tls.minimumProtocolVersion | Versione di TLS minima che Contour negozierà | stringa | 1.1 |
contour.config.tls.fallbackCertificate.name | Nome del segreto contenente il certificato di fallback per le richieste che non corrispondono alla SNI definita per un vhost | stringa | Null |
contour.config.tls.fallbackCertificate.namespace | Spazio dei nomi del segreto contenente il certificato di fallback | stringa | Null |
contour.config.tls.envoyClientCertificate.name | Nome del segreto da utilizzare come certificato client, chiave privata per la connessione TLS al servizio di back-end | stringa | Null |
contour.config.tls.envoyClientCertificate.namespace | Spazio dei nomi del segreto da utilizzare come certificato client, chiave privata per la connessione TLS al servizio back-end | stringa | Null |
contour.config.leaderelection.configmapName | Nome della mappa di configurazione da utilizzare per leaderelection di Contour | stringa | leader-elect |
contour.config.leaderelection.configmapNamespace | Spazio dei nomi della mappa di configurazione leaderelection di Contour | stringa | tanzu-system-ingress |
contour.config.disablePermitInsecure | Disabilita il campo ingressroute permitInsecure | booleano | false |
contour.config.accesslogFormat | Formato del registro di accesso | stringa | envoy |
contour.config.jsonFields | Campi che verranno registrati | array di stringhe | pacchetto envoy doc |
contour.config.useProxyProtocol | https://projectcontour.io/guides/proxy-proto/ | booleano | false |
contour.config.defaultHTTPVersions | Versioni HTTP per cui Contour deve programmare Envoy | array di stringhe | "HTTP/1.1 HTTP2" |
contour.config.timeouts.requestTimeout | Timeout per un'intera richiesta | time.Duration | Null (il timeout è disabilitato) |
contour.config.timeouts.connectionIdleTimeout | Tempo di attesa prima della terminazione di una connessione inattiva | time.Duration | 60s |
contour.config.timeouts.streamIdleTimeout | Tempo di attesa prima della terminazione di una richiesta o di un flusso senza attività | time.Duration | 5m |
contour.config.timeouts.maxConnectionDuration | Tempo di attesa prima che la connessione venga terminata, indipendentemente dall'attività o meno | time.Duration | Null (il timeout è disabilitato) |
contour.config.timeouts.ConnectionShutdownGracePeriod | Tempo di attesa tra l'invio di un GOAWAY iniziale e finale | time.Duration | 5s |
contour.config.cluster.dnsLookupFamily | dns-lookup-family da utilizzare per le richieste upstream ai servizi di tipo externalName da una route HTTPProxy | stringa | Null (valori supportati: auto, v4, v6) |
contour.config.debug | Attiva il debug di Contour | booleano | false |
contour.config.ingressStatusAddress | Indirizzo da impostare sullo stato di ogni risorsa in ingresso | stringa | Null |
contour.certificate.duration | Durata certificato root | time.Duration | 8760h |
contour.certificate.renewBefore | Data prima della quale è necessario rinovare il certificato di Contour | time.Duration | 360h |
contour.deployment.replicas | Numero di repliche di Contour | numero intero | 2 |
contour.image.repository | Posizione del repository con l'immagine di Contour. L'impostazione predefinita è il registro di VMware pubblico. Modificare questo valore se si utilizza un repository privato (ad esempio, un ambiente air gap). | stringa | projects.registry.vmware.com/tkg |
contour.image.name | Nome dell'immagine di Contour | stringa | contour |
contour.image.tag | Tag dell'immagine di Contour. Potrebbe essere necessario aggiornare questo valore se si esegue l'aggiornamento della versione di Contour. | stringa | v1.11.0_vmware.1 |
contour.image.pullPolicy | Criterio di pull dell'immagine di Contour | stringa | IfNotPresent |
envoy.image.repository | Posizione del repository con l'immagine di Envoy. L'impostazione predefinita è il registro di VMware pubblico. Modificare questo valore se si utilizza un repository privato (ad esempio, un ambiente air gap). | stringa | projects.registry.vmware.com/tkg |
envoy.image.name | Nome dell'immagine di Envoy | stringa | envoy |
envoy.image.tag | Tag dell'immagine di Envoy. Potrebbe essere necessario aggiornare questo valore se si esegue l'aggiornamento della versione di Envoy. | stringa |
|
envoy.image.pullPolicy | Criterio di pull dell'immagine di Envoy | stringa | IfNotPresent |
envoy.hostPort.enable | Contrassegno per esporre le porte di Envoy nell'host | booleano | true |
envoy.hostPort.http | Porta dell'host HTTP di Envoy | numero intero | 80 |
envoy.hostPort.https | Porta dell'host HTTPS di Envoy | numero intero | 443 |
envoy.service.type | Tipo di servizio per esporre Envoy. Valori supportati: ClusterIP, NodePort, LoadBalancer | stringa | Parametro obbligatorio per vSphere: NodePort o LoadBalancer, AWS: LoadBalancer, Azure: LoadBalancer |
envoy.service.annotations | Annotazioni del servizio Envoy | Mappa (valori chiave) | Mappa vuota |
envoy.service.externalTrafficPolicy | Criterio del traffico esterno del servizio Envoy. Valori supportati: Local, Cluster | stringa | Cluster |
envoy.service.nodePort.http | Valore di NodePort desiderato per il servizio di tipo NodePort utilizzato per le richieste HTTP | numero intero | Null - Kubernetes assegna una porta del nodo dinamico |
envoy.service.nodePort.https | Valore di NodePort desiderato per il servizio di tipo NodePort utilizzato per le richieste HTTPS | numero intero | Null - Kubernetes assegna una porta del nodo dinamico |
envoy.deployment.hostNetwork | Eseguire Envoy in hostNetwork | booleano | false |
envoy.service.aws.LBType | Tipo di AWS LB da utilizzare per esporre il servizio Envoy. Valori supportati: classic, nlb | stringa | classic |
envoy.loglevel | Livello di registrazione da utilizzare per Envoy | stringa | info |
Timeout della route per i download dei file
Il parametro contour.config.requestTimeout
definisce la durata del timeout della route di Contour. Il valore predefinito è 0s
. Se si utilizza Contour per il trasferimento del file, potrebbe essere necessario modificare questo valore.
In base alla Documentazione di Contour, un valore di timeout di 0s
indirizza Contour a usare il timeout di Envoy. In base alla Documentazione di Envoy, per impostazione il predefinita timeout di Envoy è di 15 secondi. Envoy si aspetta inoltre che l'intera operazione di richiesta-risposta venga completata entro l'intervallo di timeout.
Questo significa che, con l'impostazione predefinita del timeout di Contour di 0s
, il trasferimento del file deve essere completato entro 15 secondi. Per trasferimenti di file di grandi dimensioni, questo tempo potrebbe non essere sufficiente. Per disabilitare il timeout predefinito di Envoy, impostare il valore di contour.config.requestTimeout
su 0
.