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.
Contour-Komponenten
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
.
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
contour-data-values.yaml
festgelegt. In der Tabelle sind die verfügbaren Parameter aufgeführt und beschrieben.
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 |
|
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.