Si vous êtes déjà un utilisateur de l'équilibreur de charge d'application classique, assurez-vous de consulter cette page si vous envisagez de migrer vers l'équilibreur de charge d'application externe mondial ou si vous planifiez un nouveau déploiement avec l'équilibreur de charge d'application externe mondial.
Différences de fonctionnalités
Les fonctionnalités suivantes ne sont pas compatibles avec l'équilibreur de charge d'application externe mondial. Elles ne sont disponibles qu'avec l'équilibreur de charge d'application classique:
- Niveau de réseau Standard
-
Pour déployer des équilibreurs de charge d'application externes mondiaux pour les clusters GKE, utilisez plutôt le contrôleur GKE Gateway. Pour obtenir des instructions de configuration, consultez Déployer des passerelles.
Différences au niveau du plan de données
Le tableau suivant met en évidence les différences dans le plan de données entre l'équilibreur de charge d'application classique et l'équilibreur de charge d'application externe mondial. Ces différences affectent la manière dont les équilibreurs de charge répondent à certains événements courants.
Événement | Réponse de l'équilibreur de charge d'application classique | Réponse de l'équilibreur de charge d'application externe mondial |
Codes d'état/d'erreur | ||
Tous les backends ne sont pas opérationnels | Renvoie HTTP 502 | Renvoie HTTP 503 |
La requête utilise un algorithme de chiffrement SSL interdit | Renvoie HTTP 502 | Renvoie HTTP 503 |
Réinitialisation précoce de la connexion en amont par le backend | Renvoie HTTP 502 | Renvoie HTTP 503 |
Échec de la mise à niveau de la connexion (par exemple, lors de la mise à niveau vers Websockets) | Renvoie HTTP 400 | Renvoie HTTP 403 |
L'en-tête est trop volumineux | Renvoie HTTP 413 | Renvoie HTTP 431 |
Quotas et limites | ||
Configuration de mappage d'URL | Il existe des différences significatives dans les limites de configuration du mappage d'URL entre les deux équilibreurs de charge. Pour en savoir plus, consultez la documentation Quotas : mappages d'URL. | |
Gestion des en-têtes | ||
La requête utilise une méthode HTTP personnalisée sans corps | Ajoute l'en-tête Transfer Encoding: Chunked à la requête envoyée au backend |
Ajoute l'en-tête Content-Length: 0 à la requête envoyée au backend |
Format de l'en-tête X-Forwarded-For ajouté aux requêtes envoyées au backend |
Utilise le délimiteur ", " entre les adresses IP |
Utilise le délimiteur ", " entre les adresses IP (sans espace après la virgule) |
Conservation de la casse dans l'en-tête | La casse de l'en-tête est conservée à l'identique | Toutes les clés d'en-tête sont converties en caractères minuscules |
En-têtes répétés avec le même nom | Autorisé | Les en-têtes répétés peuvent être combinés en un seul en-tête, avec les valeurs ajoutées dans l'ordre et séparées par des virgules, comme autorisé par la norme RFC 7230. |
(HTTP/1.1 uniquement) Nom d'en-tête non valide (par exemple, caractères non compatibles dans l'en-tête) | Autorisé (pour HTTP/1.1) | Renvoie HTTP 502 (pour HTTP/1.1) |
(HTTP/1.1 uniquement) En-tête Content-Length répété (mais identique) dans la requête |
Autorisé (pour HTTP/1.1) | Renvoie HTTP 502 (pour HTTP/1.1) |
(HTTP/1.1 uniquement) Plusieurs hôtes dans l'en-tête | Lorsque deux hôtes ou plus sont ajoutés et que le premier est valide, l'en-tête est accepté | Lorsque deux hôtes ou plus sont ajoutés et que l'un d'entre eux n'est pas valide, l'équilibreur de charge renvoie le code HTTP 502 |
(HTTP/1.1 uniquement) En-tête Connection: Keep-Alive |
Ajoute l'en-tête Keep-Alive header dans les requêtes envoyées au backend par défaut |
N'ajoute pas cet en-tête par défaut |
Gérer les requêtes | ||
Conversion des barres obliques en barres obliques inverses dans la requête | URL inchangée | Conversion en barre oblique |
Fusion des barres obliques en double dans la requête | Barres obliques non fusionnées | Fusion des barres obliques |
"#" dans le chemin de la requête | Autorisés | Renvoie HTTP 400 |
(HTTP/1.1 uniquement) Caractères non valides dans le chemin de la requête (par exemple, "\\x7f\\x7f") | Autorisé (pour HTTP/1.1) | Renvoie HTTP 502 (pour HTTP/1.1) |
Distribution du trafic (configuration de mappage d'URL) | ||
La requête du client inclut un numéro de port | Le numéro de port est ignoré, même si vous avez configuré des hôtes avec des ports dans le mappage d'URL. Seul le nom d'hôte est pris en compte. Par exemple, le mappage des requêtes ciblant example.com:5000 sur le service de backend ne va porter que sur example.com .
|
Le nom d'hôte et le numéro de port sont tous deux pris en compte. Par exemple, le mappage des requêtes ciblant example.com:5000 sur le service de backend va porter sur example.com:5000 . En l'absence de correspondance, le service de backend par défaut est utilisé.
|