Service Mesh (ASM) memungkinkan Anda mengelola lalu lintas TCP apa pun, termasuk lalu lintas berbasis HTTP, HTTPS, gRPC, dan protokol TCP. ASM dapat secara otomatis mengenali lalu lintas HTTP dan HTTP2. Lalu lintas yang protokolnya tidak dapat diidentifikasi secara otomatis dianggap sebagai lalu lintas TCP. Untuk memungkinkan ASM mengenali protokol sehingga dapat menyediakan fungsi yang diinginkan, Anda perlu menentukan protokol layanan dalam kluster pada bidang data plane. Topik ini menjelaskan cara menentukan protokol layanan secara standar.
Informasi latar belakang
ASM mendukung protokol umum berikut: HTTP, HTTP2, HTTPS, TCP, TLS, gRPC, gRPC-Web, Mongo, MySQL, dan Redis. Anda dapat menentukan protokol layanan menggunakan salah satu metode berikut:
Metode 1: Atur nama port layanan untuk menentukan protokol layanan
Dalam file YAML layanan, atur nama port dalam format berikut: {Nama Protokol} atau {Nama Protokol}-{Akhiran Kustom}. Dalam contoh berikut, nama port 9090 yang menggunakan protokol gRPC diatur menjadi grpc-demo, dan nama port 3306 yang menggunakan protokol MySQL diatur menjadi mysql.
kind: Service
metadata:
name: myservice
spec:
ports:
- port: 9090
name: grpc-demo
- port: 3306
name: mysqlMetode 2: Atur appProtocol dari port layanan untuk menentukan protokol layanan
Jika instance ASM Anda adalah versi V1.8.6 atau lebih baru, dan kluster Alibaba Cloud Container Service for Kubernetes (ACK) atau kluster Kubernetes sumber terbuka versi V1.18 atau lebih baru digunakan, Anda dapat mengatur appProtocol dari port layanan untuk menentukan protokol layanan. Contoh berikut menunjukkan file YAML yang menentukan HTTPS sebagai protokol layanan:
kind: Service
metadata:
name: myservice
spec:
ports:
-port: 3306
name: database
appProtocol: httpsappProtocol memiliki prioritas lebih tinggi daripada name.