L'activation de la compression pour une passerelle d'entrée ASM permet de compresser les réponses HTTP. Cette fonctionnalité améliore la vitesse de réponse et réduit l'utilisation de la bande passante. Cette rubrique explique comment activer la compression pour une passerelle d'entrée ASM.
Prérequis
Une passerelle d'entrée est déployée. Pour plus d'informations, consultez la rubrique Créer une passerelle d'entrée.
Si vous utilisez un nom de domaine, celui-ci doit disposer d'un enregistrement ICP (Internet Content Provider) pour être accessible.
Procédure
-
Déployez Nginx dans le cluster ACK.
-
Créez un fichier nommé nginx.yaml contenant le code suivant.
-
Exécutez la commande suivante pour déployer l'application Nginx.
kubectl apply -f nginx.yaml
-
-
Créez un VirtualService et une Gateway.
Connectez-vous à la console ASM. Dans le volet de navigation de gauche, sélectionnez .
Sur la page Mesh Management, localisez l'instance ASM à configurer. Cliquez sur son nom ou sur Manage dans la colonne Actions.
Sur la page de détails de l'instance ASM, sélectionnez dans le volet de navigation de gauche. Sur la page qui s'affiche, cliquez sur Create from YAML.
-
Sur la page Create, sélectionnez les Namespaces cibles, collez le contenu suivant dans l'éditeur de code, puis cliquez sur Create.
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: nginx namespace: default spec: gateways: - nginx-gateway hosts: - '*' http: - match: - uri: exact: / route: - destination: host: nginx port: number: 80 Sur la page de détails de l'instance ASM, sélectionnez dans le volet de navigation de gauche. Sur la page qui s'affiche, cliquez sur Create from YAML.
-
Sur la page Create, sélectionnez les Namespaces cibles, collez le contenu suivant dans l'éditeur de code, puis cliquez sur Create.
apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: nginx-gateway namespace: default spec: selector: istio: ingressgateway servers: - hosts: - '*' port: name: http number: 80 protocol: HTTP
-
Activez la compression pour la passerelle d'entrée ASM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Ingress Gateway, localisez ingressgateway et cliquez sur View YAML dans la colonne Actions.
-
Dans la boîte de dialogue Edit, ajoutez le contenu suivant, puis cliquez sur OK.
compression: content_type: - text/html enabled: true gzip: memory_level: 9 remove_accept_encoding_header: trueLe tableau ci-dessous décrit les principaux champs de configuration de la compression. Pour plus d'informations sur ces champs, consultez la rubrique Gérer une passerelle d'entrée à l'aide de l'API Kubernetes.
Parameter
Description
compression.content_type
Liste des types de contenu à compresser.
compression.enabled
Indique si la compression est activée pour la passerelle d'entrée.
compression.gzip
Niveau de mémoire utilisé pour la compression Gzip.
compression.remove_accept_encoding_header
-
Si ce paramètre est défini sur
true, la passerelle d'entrée supprime l'en-tête Accept-Encoding de la requête client avant de la transférer au service amont. -
Si ce paramètre est défini sur
false, la passerelle d'entrée conserve l'en-tête Accept-Encoding de la requête client avant de la transférer au service amont.
-
Vérifier la compression
-
Ouvrez les outils de développement de votre navigateur. Ce guide utilise Google Chrome à titre d'exemple.
Dans le coin supérieur droit de Google Chrome, cliquez sur l'icône
.Sélectionnez .
-
Accédez à l'application Nginx.
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
Sur la page Services, définissez le Namespace sur istio-system, puis recherchez l'adresse IP du service istio-ingressgateway (port 80) dans la colonne External IP.
-
Dans la barre d'adresse de votre navigateur, saisissez l'adresse IP externe du service istio-ingressgateway.
Vous constatez que l'en-tête
Content-Encodingde la réponse estgzip, ce qui confirme l'activation réussie de la compression pour la passerelle d'entrée ASM. Dans l'onglet Network, sélectionnez n'importe quelle requête et vérifiez les Response Headers pour confirmer la présence de l'en-têtecontent-encoding: gzip. Cela indique que la compression gzip a été correctement activée sur la passerelle d'entrée ASM.