Batasan gRPC tanpa proxy
Dokumen ini menjelaskan batasan yang berlaku untuk Cloud Service Mesh dengan aplikasi gRPC tanpa proxy. Untuk mengetahui informasi tentang batas, lihat Kuota dan batas.
Batasan terkait aturan penerusan, peta URL, dan proxy target hanya berlaku untuk Cloud Service Mesh dengan API load balancing Google Cloud.
Batasan umum
Keterbatasan Cloud Service Mesh dengan aplikasi gRPC tanpa proxy mencakup hal berikut:
Anda tidak dapat mengonfigurasi layanan backend dan peta aturan perutean dengan protokol gRPC di Konsol Google Cloud. Untuk resource ini, konsol Google Cloud bersifat hanya baca.
gRPC tanpa proxy mendukung penemuan endpoint, perutean, load balancing, pelaporan beban, dan banyak fitur pengelolaan traffic lanjutan.
Untuk versi gRPC minimum yang diperlukan guna mendukung beberapa fitur pengelolaan traffic lanjutan, lihat Versi dan bahasa gRPC yang didukung.
Untuk aplikasi gRPC yang memerlukan fitur pengelolaan traffic lanjutan yang tidak didukung, gunakan DNS resolver nama, bukan resolver xDS, dan deploy dengan proxy file bantuan yang didukung dengan Cloud Service Mesh. Di proxy gRPC target, tetapkan kolom
validateForProxyless
keFALSE
sehingga Anda dapat mengonfigurasi fitur yang belum didukung oleh gRPC, tetapi yang tersedia di Cloud Service Mesh dengan penggunaan proxy file bantuan.
gRPC tanpa proxy hanya mendukung kebijakan load balancing round-robin dan hash cincin. Kebijakan load balancing lainnya tidak didukung.
- Cloud Service Mesh memberikan daftar lokalitas yang diprioritaskan, yaitu satu grup instance atau satu grup endpoint jaringan (NEG), ke klien gRPC. Cloud Service Mesh menghitung daftar ini berdasarkan zona terdekat yang tersedia, kapasitasnya, dan mode penyeimbangan layanan backend.
- Untuk permintaan tertentu, klien gRPC memilih satu atau beberapa lokalitas berdasarkan prioritas dan bobot, serta melakukan load balancing berbasis round-robin atau hash berbasis hash ke backend dalam lokalitas tersebut.
Failover dari satu zona (lokalitas) ke zona lain dimulai saat kapasitas zona saat ini turun di bawah 50%. Anda tidak dapat mengonfigurasi ambang batas ini.
Dalam beberapa kasus, perintah konfigurasi yang terkait dengan proxy gRPC target dan aturan penerusan yang merujuk ke proxy gRPC target mungkin memerlukan waktu hingga satu menit.
NEG konektivitas hybrid (
NON_GCP_PRIVATE_IP_PORT
NEG) tidak didukung dengan klien gRPC tanpa proxy.
Batasan peta URL
Fitur pengelolaan traffic peta URL berikut didukung dengan layanan gRPC tanpa proxy.
Fitur yang didukung di pathMatcher
dari hostRules
:
pathMatcher
name
description
defaultService
defaultRouteAction
weightedBackendServices
backendService
weight
retryPolicy
retryConditions
numRetries
faultInjectionPolicy
maxStreamDuration
pathRules
service
routeAction
weightedBackendServices
backendService
weight
retryPolicy
retryConditions
numRetries
faultInjectionPolicy
maxStreamDuration
paths
routeRules
priority
description
matchRules
prefixMatch
fullPathMatch
headerMatches
metadataFilters
service
routeAction
weightedBackendServices
backendService
weight
retryPolicy
retryConditions
numRetries
faultInjectionPolicy
maxStreamDuration
Batasan peta URL berikut berlaku saat Anda menggunakan layanan gRPC tanpa proxy:
Karakter pengganti dalam aturan host dan aturan default peta URL, termasuk aturan host
*
yang dibuat secara implisit untuk peta URL, tidak didukung. Entri tersebut dilewati ketika pencocokan host selesai.Fitur berikut tidak didukung:
queryParameterMatches
dirouteRules
- Tindakan rute
headerAction
,urlRewrite
,requestMirrorPolicy
,corsPolicy
, danurlRedirect
- Tindakan rute
timeout
; gunakanmaxStreamDuration
, bukantimeout
perTryTimeout
diretryPolicy
retryConditions
diretryPolicy
kecuali satu atau beberapa kondisicancelled
,deadline-exceeded
,internal
,resource-exhausted
, danunavailable
defaultService
,defaultRouteAction
,defaultUrlRedirect
, danheaderAction
dari peta URL tidak digunakan oleh layanan gRPC tanpa proxy. Jika aturan host yang cocok tidak ditemukan saat klien gRPC tanpa proxy mencari nama layanan, Cloud Service Mesh akan menampilkan error pencarian nama, bukan menggunakan layanan atau tindakan default peta URL.headerAction
diweightedBackendServices
Dalam aturan pencocokan header peta URL, hanya metadata kustom dan header
content-type
non-biner yang ditentukan oleh pengguna yang didukung. Header tingkat transport berikut tidak dapat digunakan dalam aturan pencocokan header::authority
,:method
,:path
,:scheme
,user-agent
,accept-encoding
,content-encoding
,grpc-accept-encoding
,grpc-encoding
,grpc-previous-rpc-attempts
,grpc-tags-bin
,grpc-timeout
, dangrpc-trace-bin
.Jika Anda memperbarui aturan host peta URL agar berubah dari satu layanan backend ke layanan backend lainnya, traffic mungkin akan segera turun saat konfigurasi baru dikirim ke klien. Untuk menghindari batasan ini, konfigurasikan pemisahan traffic dengan layanan backend berbobot. Setelah mengonfigurasi pemisahan traffic, alihkan traffic secara perlahan dari layanan backend lama ke layanan backend baru.
Batasan proxy gRPC target
Jika proxy gRPC target mereferensikan peta URL, Anda tidak dapat mengonfigurasi fitur peta URL berikut. Hal ini berlaku baik Anda menggunakan proxy file bantuan atau layanan gRPC tanpa proxy karena fitur khusus protokol HTTP ini tidak berlaku untuk protokol gRPC:
queryParameterMatches
aturan pencocokan- Tindakan rute
urlRewrite
- Tindakan rute
urlRedirect
corsPolicy
tindakan
Batasan layanan backend
Fitur layanan backend berikut tidak didukung dengan layanan gRPC tanpa proxy dengan proxy file bantuan:
localityLbPolicy
kecualiLEAST_REQUEST
(hanya dengan klien Java),ROUND_ROBIN
, danRING_HASH
sessionAffinity
kecualiHEADER_FIELD
danNONE
consistentHash
kecuali kolomhttpHeaderName
danminimumRingSize
affinityCookieTtlSec
timeoutSec
; gunakanmaxStreamDuration
sebagai gantinyacircuitBreakers
kecuali kolommaxRequests
Perhatikan bahwa klien gRPC akan melakukan NACK konfigurasi dari Cloud Service Mesh saat nilai yang tidak didukung dikonfigurasi. Tindakan ini akan menyebabkan konfigurasi untuk semua
layanan backend ditolak oleh klien karena protokol xDS mengharuskan
penolakan semua resource dalam respons yang diberikan, bukan menolak
hanya resource individual dari respons. Hal ini akan menyebabkan saluran
klien beralih ke status error sementara hingga konfigurasi diperbaiki. Karena
batasan ini, Anda harus memastikan bahwa semua klien mendukung nilai yang diperlukan
sebelum mengonfigurasi fitur untuk suatu layanan. Misalnya, jika Anda mengubah kebijakan ROUND_ROBIN
menjadi RING_HASH
, Anda harus memastikan bahwa semua klien diupgrade ke versi yang mendukung RING_HASH
.
Batasan pengelolaan traffic lanjutan
Anda tidak dapat mengonfigurasi beberapa fitur pengelolaan traffic lanjutan untuk layanan gRPC tanpa proxy dengan Cloud Service Mesh. Untuk fitur yang didukung, lihat hal berikut:
Batasan dengan Direktori Layanan
- Direktori Layanan dan Cloud Service Mesh tidak menjamin keterjangkauan jaringan untuk klien.
Layanan backend hanya dapat mereferensikan salah satu dari hal berikut:
- Grup instance terkelola atau grup instance yang tidak dikelola
- Grup endpoint jaringan
- Pengikatan layanan
Layanan Direktori Layanan hanya dapat digunakan dengan layanan backend global dengan
load-balancing-scheme=INTERNAL_SELF_MANAGED
.Layanan Direktori Layanan yang dirujuk oleh binding layanan dapat dihapus. Jika layanan Direktori Layanan yang mendasari tempat layanan backend terpasang dihapus, aplikasi yang menggunakan Cloud Service Mesh tidak dapat mengirim traffic ke layanan ini, oleh karena itu, permintaan akan gagal. Lihat Kemampuan observasi dan proses debug untuk mengetahui praktik terbaik.
Jika Anda mengikat layanan Direktori Layanan ke layanan backend, Anda tidak dapat mengonfigurasi health check pada layanan backend tersebut.
Langkah selanjutnya
- Untuk mempelajari batasan yang berlaku pada Cloud Service Mesh, termasuk batasan pengelolaan traffic lanjutan, lihat Batasan Cloud Service Mesh.
- Untuk menemukan kasus penggunaan dan pola arsitektur bagi layanan gRPC tanpa proxy, lihat Ringkasan layanan gRPC tanpa proxy.