Dieses Thema enthält Referenzinformationen für das Contour mit Envoy-Paket.

Informationen zu Contour und Envory

Contour (https://projectcontour.io/) ist ein Kubernetes-Ingress-Controller, der den Envoy-Reverse-HTTP Proxy umfasst. Contour mit Envoy wird häufig mit anderen Paketen wie ExternalDNS, Prometheus und Harbor verwendet.

Informationen zum Installieren des Contour-Pakets auf einem TKG-Cluster finden Sie in den folgenden Themen:

Contour-Komponenten

Das Contour-Paket umfasst den Contour-Ingress-Controller und den Envoy-Reverse HTTP-Proxy. Diese Komponenten werden als Container installiert. Die Container werden aus der öffentlichen Registrierung abgerufen, die im Paket-Repository angegeben ist.
Container Ressourcentyp Replikate Beschreibung
Envoy DaemonSet 3 Hochleistungs-Reverse-Proxy
Contour Bereitstellung 2 Verwaltungs- und Konfigurationsserver für Envoy

Contour-Datenwerte

Nachstehend finden Sie ein Beispiel contour-data-values.yaml.

Die einzige Anpassung besteht darin, dass der Envoy-Dienst vom Typ LoadBalancer ist (der Standard ist NodePort). Dies bedeutet, dass der Envoy-Dienst von außerhalb des Clusters für den Ingress zugänglich ist.
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

Contour-Konfiguration

Die Contour-Paket-Konfigurationswerte werden in contour-data-values.yaml festgelegt. In der Tabelle sind die verfügbaren Parameter aufgeführt und beschrieben.
Tabelle 1. Contour Ingress-Konfigurationsparameter
Parameter Beschreibung Typ Standard
infrastructure_provider Infrastrukturanbieter Unterstützte Werte: vsphere, aws, azure string Obligatorischer Parameter
contour.namespace Namespace, in dem Contour bereitgestellt wird string tanzu-system-ingress
contour.config.requestTimeout Zeitüberschreitung für die Clientanforderung, die an Envoy übermittelt werden soll time.Duration 0 s

(Weitere Informationen finden Sie im folgenden Abschnitt)

contour.config.server.xdsServerType Zu verwendender XDS-Servertyp: Unterstützte Werte: "contour" oder "envoy" string Null
contour.config.tls.minimumProtocolVersion Minimale TLS-Version, die Contour aushandelt string 1,1
contour.config.tls.fallbackCertificate.name Name des geheimen Schlüssels, der das Fallback-Zertifikat für Anforderungen enthält, die nicht mit dem für einen vhost definierten SNI übereinstimmen string Null
contour.config.tls.fallbackCertificate.namespace Namespace des geheimen Schlüssels, der das Fallback-Zertifikat enthält string Null
contour.config.tls.envoyClientCertificate.name Name des geheimen Schlüssels, der als Clientzertifikat verwendet werden soll, privater Schlüssel für die TLS-Verbindung zum Backend-Dienst string Null
contour.config.tls.envoyClientCertificate.namespace Namespace des geheimen Schlüssels, der als Clientzertifikat verwendet werden soll, privater Schlüssel für die TLS-Verbindung zum Backend-Dienst string Null
contour.config.leaderelection.configmapName Name der Konfigurationszuordnung, die für die Contour-Leaderelection verwendet werden soll string leader-elect
contour.config.leaderelection.configmapNamespace Namespace der Contour-Leaderelection-Configmap string tanzu-system-ingress
contour.config.disablePermitInsecure Deaktiviert das Feld "ingressroute permitInsecure" Boolean false
contour.config.accesslogFormat Zugriffsprotokollformat string Envoy
contour.config.jsonFields Felder, die protokolliert werden Array von Zeichenfolgen Envoy-Paketdokument
contour.config.useProxyProtocol https://projectcontour.io/guides/proxy-proto/ Boolean false
contour.config.defaultHTTPVersions HTTP-Versionen, mit denen Contour Envoy programmieren soll, damit sie von Envoy unterstützt werden Array von Zeichenfolgen "HTTP/1.1 HTTP2"
contour.config.timeouts.requestTimeout Zeitüberschreitung für eine gesamte Anforderung time.Duration Null (Zeitüberschreitung ist deaktiviert)
config.timeouts.connectionIdleTimeout Wartezeit bis zum Beenden einer Leerlaufverbindung time.Duration 60 s
contour.config.timeouts.streamIdleTimeout Wartezeit bis zum Beenden einer Anforderung oder eines Streams ohne Aktivität time.Duration 5 m
contour.config.timeouts.maxConnectionDuration Wartezeit bis zum Beenden einer Verbindung unabhängig von der Aktivität time.Duration Null (Zeitüberschreitung ist deaktiviert)
contour.config.timeouts.ConnectionShutdownGracePeriod Wartezeit zwischen dem Senden eines ersten und eines letzten GOAWAY time.Duration 5 s
contour.config.cluster.dnsLookupFamily dns-lookup-family, die für Upstream-Anforderungen an Dienste vom Typ externalName von einer HTTPProxy-Route verwendet werden soll string Null (unterstützte Werte: auto, v4, v6)
contour.config.debug Fehlerbehebung (Debuggen) durch Contour aktivieren Boolean false
contour.config.ingressStatusAddress Die Adresse, die für den Status jeder Ingress-Ressource festgelegt werden soll string Null
contour.certificate.duration Gültigkeit des Contour-Zertifikats time.Duration 8760 h
contour.certificate.renewBefore Dauer, bis das Contour-Zertifikat erneuert werden sollte time.Duration 360 h
contour.deployment.replicas Anzahl an Contour-Replikas integer 2
contour.image.repository Speicherort des Repositorys mit dem Contour-Image. Als Standardwert wird die öffentliche VMware-Registrierung verwendet. Ändern Sie diesen Wert, wenn Sie ein privates Repository verwenden (z. B. Air-Gap-Umgebung). string projects.registry.vmware.com/tkg
contour.image.name Name des Contour-Images string Contour
contour.image.tag Contour-Image-Tag Dieser Wert muss möglicherweise aktualisiert werden, wenn Sie ein Upgrade der Contour-Version durchführen. string v1.11.0_vmware.1
contour.image.pullPolicy Pull-Richtlinie für das Contour-Image string IfNotPresent
envoy.image.repository Speicherort des Repositorys mit dem Envoy-Image. Als Standardwert wird die öffentliche VMware-Registrierung verwendet. Ändern Sie diesen Wert, wenn Sie ein privates Repository verwenden (z. B. Air-Gap-Umgebung). string projects.registry.vmware.com/tkg
envoy.image.name Name des Envoy-Images string Envoy
envoy.image.tag Envoy-Image-Tag. Dieser Wert muss möglicherweise aktualisiert werden, wenn Sie ein Upgrade der Envoy-Version durchführen. string

v1.17.3_vmware.1

envoy.image.pullPolicy Pull-Richtlinie für das Envoy-Image string IfNotPresent
envoy.hostPort.enable Flag, um Envoy-Ports auf dem Host verfügbar zu machen Boolean true
envoy.hostPort.http Envoy HTTP-Host-Port integer 80
envoy.hostPort.https Envoy HTTPS-Host-Port integer 443
envoy.service.type Diensttyp zur Verfügbarmachung von von Envoy. Unterstützte Werte: ClusterIP, NodePort, LoadBalancer string Obligatorischer Parameter für vSphere: NodePort oder LoadBalancer, AWS: LoadBalancer, Azure: LoadBalancer
envoy.service.annotations Envoy-Dienstanmerkungen Zuordnung (key-values) Leere Zuordnung
envoy.service.externalTrafficPolicy Externe Datenverkehrsrichtlinie des Envoy-Dienstes. Unterstützte Werte: Lokal, Cluster string Cluster
envoy.service.nodePort.http Gewünschter nodePort für den Dienst des Typs NodePort, der für HTTP-Anforderungen verwendet wird integer Null – Kubernetes weist einen dynamischen Knotenport zu
envoy.service.nodePort.https Gewünschter nodePort für den Dienst vom Typ NodePort, der für HTTPS-Anforderungen verwendet wird integer Null – Kubernetes weist einen dynamischen Knotenport zu
envoy.deployment.hostNetwork Envoy auf hostNetwork ausführen Boolean false
envoy.service.aws.LBType AWS-LB-Typ, der für die Offenlegung des Envoy Service verwendet werden soll. Unterstützte Werte: classic, nlb string classic
envoy.loglevel Für Envoy zu verwendende Protokollebene string Info

Routen-Zeitüberschreitung für Datei-Downloads

Der Parameter contour.config.requestTimeout definiert die Zeitüberschreitungsdauer der Contour-Route. Der Standardwert ist 0s. Wenn Sie Contour für die Dateiübertragung verwenden, müssen Sie diesen Wert gegebenenfalls anpassen.

Gemäß der Contour-Dokumentation weist ein Zeitüberschreitungswert von 0s Contour an, die Envoy-Zeitüberschreitung zu verwenden. Gemäß der Envoy-Dokumentation weist Envoy eine Standardzeitüberschreitung von 15 Sekunden auf. Des Weiteren geht Envoy davon aus, dass der gesamte Anforderung-Antwort-Vorgang innerhalb des Zeitüberschreitungsintervalls abgeschlossen wird.

Dies bedeutet, dass die Dateiübertragung bei der standardmäßigen Contour-Zeitüberschreitungseinstellung von 0s innerhalb von 15 Sekunden abgeschlossen sein muss. Für große Dateiübertragungen reicht die Zeit möglicherweise nicht aus. Um die Envoy-Standardzeitüberschreitung zu deaktivieren, legen Sie den Wert contour.config.requestTimeout auf 0 fest.