Setelah mengaktifkan kompresi data untuk layanan gateway masuk dari instance Service Mesh (ASM), server akan menekan konten respons untuk permintaan HTTP. Hal ini mengurangi waktu respons dan konsumsi trafik. Topik ini menjelaskan cara mengaktifkan kompresi data untuk layanan gateway masuk dari instance ASM.
Prasyarat
Sebuah gateway masuk telah diterapkan. Untuk informasi lebih lanjut, lihat Buat Gateway Masuk.
Pengisian Penyedia Konten Internet (ICP) telah diperoleh untuk nama domain jika Anda ingin menggunakan nama domain tersebut.
Prosedur
Terapkan aplikasi NGINX di cluster ACK.
Buat file nginx.yaml dengan konten berikut:
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 1 template: metadata: labels: app: nginx sidecarset-injected: "true" spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx spec: ports: - name: http port: 80 protocol: TCP targetPort: 80 selector: app: nginx type: ClusterIPJalankan perintah berikut untuk menerapkan aplikasi NGINX:
kubectl apply -f nginx.yaml
Buat layanan virtual dan gateway Istio.
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, temukan instance ASM yang ingin dikonfigurasi. Klik nama instance ASM atau klik Manage di kolom Actions.
Di halaman detail instance ASM, pilih di panel navigasi kiri. Di halaman yang muncul, klik Create from YAML.
Di halaman Create, pilih namespace, salin konten berikut ke editor kode, lalu klik 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: 80Di halaman detail instance ASM, pilih di panel navigasi kiri. Di halaman yang muncul, klik Create from YAML.
Di halaman Create, pilih namespace, salin konten berikut ke editor kode, lalu klik 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
Aktifkan kompresi data untuk layanan gateway masuk dari instance ASM.
Di halaman detail instance ASM, pilih di panel navigasi kiri.
Di halaman Ingress Gateway, temukan gateway masuk yang ingin digunakan dan klik YAML.
Di kotak dialog Edit, tambahkan konten berikut ke kode YAML dan klik OK.
compression: content_type: - text/html enabled: true gzip: memory_level: 9 remove_accept_encoding_header: trueTabel berikut menjelaskan beberapa bidang. Untuk informasi lebih lanjut tentang bidang-bidang tersebut, lihat Buat dan Kelola Gateway Masuk Menggunakan Kubernetes API.
Bidang
Deskripsi
compression.content_type
Header Content-Type yang akan dikompresi.
compression.enabled
Menentukan apakah akan mengaktifkan kompresi data untuk layanan gateway masuk.
compression.gzip
Format kompresi dan jumlah memori yang tersedia untuk kompresi.
compression.remove_accept_encoding_header
Menentukan apakah akan menghapus header Accept-Encoding dari permintaan HTTP yang dikirim oleh klien sebelum gateway masuk meneruskan permintaan HTTP ke layanan upstream. Jika parameter diatur ke
true, header Accept-Encoding dihapus dari permintaan HTTP.Jika parameter diatur ke
false, header Accept-Encoding tetap ada dalam permintaan HTTP.
Konfigurasi contoh:

Verifikasi bahwa kompresi data diaktifkan untuk layanan gateway masuk
Buka halaman debugging browser. Dalam contoh ini, Google Chrome digunakan.
Klik ikon
di pojok kanan atas Google Chrome.Pilih .
Akses aplikasi NGINX.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan cluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Di bagian atas halaman Services, pilih istio-system dari daftar drop-down Namespace. Temukan istio_ingressgateway dan lihat alamat IP dengan port 80 di kolom External IP.
Di panel DevTools, masukkan titik akhir yang diperoleh dari layanan istio_ingressgateway.
Jika nilai parameter
content-encodingadalahgzipdi bagian Response Headers, seperti yang ditunjukkan pada gambar berikut, itu menunjukkan bahwa kompresi data diaktifkan untuk layanan gateway masuk.