Cette rubrique fournit des informations de référence pour le module Contour avec Envoy.
À propos de Contour et d'Envoy
Contour (https://projectcontour.io/) est un contrôleur d'entrée Kubernetes qui utilise le proxy HTTP inverse Envoy. Contour avec Envoy est généralement utilisé avec d'autres modules, tels qu'ExternalDNS, Prometheus et Harbor.
Composants Contour
Conteneur | Type de ressource | Réplicas | Description |
---|---|---|---|
Envoy | DaemonSet | 3 | Proxy inverse à haute performance |
Contour | Déploiement | 2 | Serveur de gestion et de configuration pour Envoy |
Valeurs de données Contour
Vous trouverez ci-dessous un exemple de fichier 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
Configuration Contour
contour-data-values.yaml
. Le tableau répertorie et décrit les paramètres disponibles.
Paramètre | Description | Type | Par défaut |
---|---|---|---|
infrastructure_provider | Fournisseur d'infrastructure. Valeurs prises en charge : vsphere, aws, azure | string | Paramètre obligatoire |
contour.namespace | Espace de noms où Contour sera déployé | string | tanzu-system-ingress |
contour.config.requestTimeout | Délai d'expiration de la demande client à transmettre à Envoy | time.Duration | 0s (Pour plus d'informations, voir la section ci-dessous) |
contour.config.server.xdsServerType | Type de serveur XDS à utiliser : valeurs prises en charge : contour ou envoy | string | Null |
contour.config.tls.minimumProtocolVersion | Version de TLS minimale négociée par Contour | string | 1.1 |
contour.config.tls.fallbackCertificate.name | Nom du secret contenant le certificat de secours pour les demandes qui ne correspondent pas à l'identité SNI définie pour un vhost | string | Null |
contour.config.tls.fallbackCertificate.namespace | Espace de noms d'un secret contenant un certificat de secours | string | Null |
contour.config.tls.envoyClientCertificate.name | Nom du secret à utiliser comme certificat client et clé privée pour la connexion TLS au service principal | string | Null |
contour.config.tls.envoyClientCertificate.namespace | Espace de noms du secret à utiliser comme certificat client et clé privée pour la connexion TLS au service principal | string | Null |
contour.config.leaderelection.configmapName | Nom du mappage de configurations à utiliser pour la sélection du leader Contour | string | leader-elect |
contour.config.leaderelection.configmapNamespace | Espace de noms du mappage de configurations pour la sélection du leader Contour | string | tanzu-system-ingress |
contour.config.disablePermitInsecure | Désactive le champ ingressroute permitInsecure | booléen | false |
contour.config.accesslogFormat | Accéder au format du journal | string | envoy |
contour.config.jsonFields | Champs qui seront journalisés | groupe de chaînes | Documentation du module Envoy |
contour.config.useProxyProtocol | https://projectcontour.io/guides/proxy-proto/ | booléen | false |
contour.config.defaultHTTPVersions | Versions HTTP que Contour doit publier en programmant Envoy | groupe de chaînes | "HTTP/1.1 HTTP2" |
contour.config.timeouts.requestTimeout | Délai d'expiration d'une demande complète | time.Duration | Null (délai d'expiration désactivé) |
contour.config.timeouts.connectionIdleTimeout | Délai d'attente avant l'arrêt d'une connexion inactive | time.Duration | 60 s |
contour.config.timeouts.streamIdleTimeout | Délai d'attente avant l'arrêt d'une demande ou d'un flux sans activité | time.Duration | 5 min |
contour.config.timeouts.maxConnectionDuration | Délai d'attente avant l'arrêt d'une connexion, avec ou sans activité | time.Duration | Null (délai d'expiration désactivé) |
contour.config.timeouts.ConnectionShutdownGracePeriod | Délai d'attente entre l'envoi d'un GOAWAY initial et final | time.Duration | 5 s |
contour.config.cluster.dnsLookupFamily | dns-lookup-family à utiliser pour les demandes en amont aux services de type externalName à partir d'un itinéraire HTTPProxy | string | Null (valeurs prises en charge : auto, v4, v6) |
contour.config.debug | Activer le débogage de Contour | booléen | false |
contour.config.ingressStatusAddress | Adresse à définir sur l'état de chaque ressource d'entrée | string | Null |
contour.certificate.duration | Durée du certificat de Contour | time.Duration | 8 760 h |
contour.certificate.renewBefore | Durée avant le renouvellement du certificat Contour | time.Duration | 360 h |
contour.deployment.replicas | Nombre de réplicas Contour | entier | 2 |
contour.image.repository | Emplacement du référentiel avec l'image Contour. La valeur par défaut est le registre VMware public. Modifiez cette valeur si vous utilisez un référentiel privé (par exemple, un environnement air-gapped). | string | projects.registry.vmware.com/tkg |
contour.image.name | Nom de l'image Contour | string | contour |
contour.image.tag | Balise d'image Contour. Il peut être nécessaire de mettre à jour cette valeur si vous mettez à niveau la version de Contour. | string | v1.11.0_vmware.1 |
contour.image.pullPolicy | Stratégie d'extraction d'image Contour | string | IfNotPresent |
envoy.image.repository | Emplacement du référentiel avec l'image Envoy. La valeur par défaut est le registre VMware public. Modifiez cette valeur si vous utilisez un référentiel privé (par exemple, un environnement air-gapped). | string | projects.registry.vmware.com/tkg |
envoy.image.name | Nom de l'image Envoy | string | envoy |
envoy.image.tag | Balise d'image Envoy. Il peut être nécessaire de mettre à jour cette valeur si vous mettez à niveau la version d'Envoy. | string |
|
envoy.image.pullPolicy | Stratégie d'image Envoy | string | IfNotPresent |
envoy.hostPort.enable | Indicateur pour exposer les ports Envoy sur l'hôte | booléen | true |
envoy.hostPort.http | Port de l'hôte HTTP Envoy | entier | 80 |
envoy.hostPort.https | Port de l'hôte HTTPS Envoy | entier | 443 |
envoy.service.type | Type de service à exposer (Envoy). Valeurs prises en charge : ClusterIP, NodePort, LoadBalancer | string | Paramètre obligatoire pour vSphere : NodePort ou LoadBalancer, AWS : LoadBalancer, Azure : LoadBalancer |
envoy.service.annotations | Annotations du service Envoy | Carte (clés-valeurs) | Carte vide |
envoy.service.externalTrafficPolicy | Stratégie de trafic externe du service Envoy. Valeurs prises en charge : Local, Cluster | string | Cluster |
envoy.service.nodePort.http | NodePort souhaité pour le service de type NodePort utilisé pour les demandes HTTP | entier | Null (Kubernetes attribue un port de nœud dynamique) |
envoy.service.nodePort.https | NodePort souhaité pour le service de type NodePort utilisé pour les demandes HTTPS | entier | Null (Kubernetes attribue un port de nœud dynamique) |
envoy.deployment.hostNetwork | Exécuter Envoy sur hostNetwork | booléen | false |
envoy.service.aws.LBType | Type de LB AWS à utiliser pour exposer le service Envoy. Valeurs prises en charge : classique, nlb | string | classic |
envoy.loglevel | Niveau de journal à utiliser pour Envoy | string | info |
Délai d'expiration de la route pour les téléchargements de fichiers
Le paramètre contour.config.requestTimeout
définit le délai d'expiration de la route Contour. La valeur par défaut est 0s
. Si vous utilisez Contour pour le transfert de fichiers, vous devrez peut-être ajuster cette valeur.
Selon la documentation de Contour, une valeur de délai d'expiration de 0s
demande à Contour d'utiliser le délai d'expiration Envoy. Selon la documentation Envoy, Envoy est configuré avec un délai d'expiration de 15 secondes. En outre, Envoy s'attend à ce que l'opération demande-réponse s'effectue avant l'expiration du délai.
Cela signifie qu'avec le paramètre de délai d'expiration Contour par défaut de 0s
, le transfert de fichiers doit se terminer dans les 15 secondes. Pour les transferts de fichiers volumineux, ce délai peut être insuffisant. Pour désactiver le délai d'expiration Envoy, définissez la valeur de contour.config.requestTimeout
sur 0
.