Batasan gRPC tanpa proxy
Dokumen ini menjelaskan batasan yang berlaku untuk Cloud Service Mesh dengan aplikasi gRPC tanpa proxy. Untuk informasi tentang batas, lihat Kuota dan batas.
Batasan pada aturan penerusan, peta URL, dan proxy target hanya berlaku untuk Cloud Service Mesh dengan Google Cloud load balancing API.
Batasan umum
Batasan Cloud Service Mesh dengan aplikasi gRPC tanpa proxy meliputi hal berikut:
Anda tidak dapat mengonfigurasi layanan backend dan peta aturan perutean dengan gRPC di Konsol Google Cloud. Untuk sumber daya ini, Konsol Google Cloud bersifat hanya baca.
gRPC tanpa proxy mendukung penemuan endpoint, perutean, load balancing, pemuatan pelaporan, dan berbagai fitur pengelolaan traffic lanjutan.
Untuk versi gRPC minimum yang diperlukan untuk mendukung beberapa pengelolaan traffic lanjutan fitur, lihat Versi dan bahasa gRPC yang didukung.
Untuk aplikasi gRPC yang memerlukan traffic lanjutan yang tidak didukung fitur pengelolaan, menggunakan DNS name resolver daripada xDS resolver dan men-deploy dengan proxy file bantuan yang didukung dengan Cloud Service Mesh. Di proxy gRPC target, tetapkan kolom
validateForProxyless
keFALSE
agar Anda dapat mengonfigurasi fitur yang belum didukung oleh gRPC, yang tersedia di Cloud Service Mesh dengan penggunaan proxy file bantuan.
gRPC tanpa proxy hanya mendukung load balancing hash round-robin dan ring kebijakan izin yang relevan. Yang lain kebijakan load balancing tidak didukung.
- Cloud Service Mesh menyediakan daftar bobot yang diprioritaskan lokalitas—satu grup instance atau satu grup endpoint jaringan (NEG)—ke klien gRPC. Cloud Service Mesh menghitung daftar ini berdasarkan pada zona terdekat yang tersedia, kapasitasnya, dan mode penyeimbangan layanan backend.
- Untuk permintaan tertentu, gRPC klien memilih satu atau lebih lokalitas berdasarkan prioritas dan bobotnya dan melakukan load balancing berbasis hash atau round-robin ke backend dalam lokalitas-lokalitas tersebut.
Failover dari satu zona (lokalitas) ke zona lain dimulai saat kapasitas zona saat ini turun di bawah 50%. Anda tidak dapat mengonfigurasi nilai minimum 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 menit.
NEG konektivitas hybrid (
NON_GCP_PRIVATE_IP_PORT
NEG) tidak didukung dengan klien gRPC tanpa proxy.
Batasan peta URL
Lalu lintas peta URL berikut fitur pengelolaan otomatis didukung dengan layanan gRPC tanpa proxy.
Fitur yang didukung dalam 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 {i>host<i} dan aturan {i>default<i} peta URL, termasuk aturan host
*
yang dibuat secara implisit dari peta URL, tidak didukung. Entri tersebut akan dilewati saat pencocokan host selesai.Fitur berikut tidak didukung:
queryParameterMatches
dirouteRules
headerAction
,urlRewrite
,requestMirrorPolicy
,corsPolicy
, danurlRedirect
tindakan rute- Tindakan rute
timeout
; gunakanmaxStreamDuration
, bukantimeout
perTryTimeout
diretryPolicy
retryConditions
dalamretryPolicy
kecuali satu atau beberapa kondisicancelled
,deadline-exceeded
,internal
,resource-exhausted
, danunavailable
defaultService
,defaultRouteAction
,defaultUrlRedirect
, danheaderAction
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 menampilkan error pencarian nama, menggunakan layanan atau tindakan default dari peta URL.headerAction
diweightedBackendServices
Dalam aturan pencocokan header peta URL, hanya file non-biner yang ditentukan pengguna metadata kustom dan header
content-type
didukung. Level transpor berikut header 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
.Saat Anda memperbarui aturan host peta URL untuk berubah dari satu layanan backend menjadi yang lain, traffic mungkin akan menurun sesaat sementara konfigurasi baru didorong ke klien. Untuk menghindari batasan ini, konfigurasikan pemisahan traffic dengan layanan backend berbobot. Setelah mengonfigurasi pemisahan traffic, alihkan traffic secara perlahan dari backend lama ke layanan backend baru.
Batasan proxy gRPC target
Jika proxy gRPC target merujuk peta URL, Anda tidak dapat mengonfigurasi fitur peta URL berikut ini. Hal ini tetap berlaku meskipun Anda menggunakan file bantuan layanan gRPC tanpa proxy atau proxy karena protokol HTTP tidak berlaku untuk protokol gRPC:
queryParameterMatches
aturan kecocokan- Tindakan rute
urlRewrite
- Tindakan rute
urlRedirect
corsPolicy
tindakan
Batasan layanan backend
Fitur layanan backend berikut tidak didukung dengan proxyless Layanan gRPC dengan proxy file bantuan:
localityLbPolicy
kecualiLEAST_REQUEST
(khusus 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 NACK konfigurasi dari Cloud Service Mesh
saat nilai yang tidak didukung dikonfigurasi. Ini akan menyebabkan
konfigurasi untuk semua
layanan backend ditolak oleh klien karena protokol xDS memerlukan
menolak semua sumber daya dalam respons tertentu, alih-alih dapat menolak
hanya satu sumber daya
dari respons. Hal ini akan menyebabkan klien
untuk beralih ke status error sementara hingga konfigurasi diperbaiki. Tenggat
terhadap batasan ini, Anda harus memastikan bahwa semua klien mendukung nilai
sebelum mengkonfigurasi
fitur untuk suatu layanan. Misalnya, jika Anda mengubah
ROUND_ROBIN
ke 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 aplikasi tanpa proxy Layanan gRPC dengan Cloud Service Mesh. Untuk fitur yang didukung, lihat berikut ini:
Batasan dengan Direktori Layanan
- Direktori Layanan dan Mesh Layanan Cloud tidak menjamin keterjangkauan jaringan untuk klien.
Layanan backend hanya dapat mereferensikan salah satu dari hal berikut:
- Grup instance terkelola atau grup instance tidak terkelola
- Grup endpoint jaringan
- Pengikatan layanan
Layanan Direktori Layanan hanya dapat digunakan dengan layanan backend dengan
load-balancing-scheme=INTERNAL_SELF_MANAGED
.Layanan Direktori Layanan yang dirujuk oleh layanan binding dapat dihapus. Jika Direktori Layanan yang mendasarinya layanan tempat layanan backend dilampirkan, aplikasi yang menggunakan Cloud Service Mesh tidak dapat mengirim traffic ke layanan ini, oleh karena itu, permintaan gagal. Lihat Kemampuan observasi dan proses debug untuk mengetahui praktik terbaik.
Saat Anda mengikat layanan Direktori Layanan ke backend layanan backend, Anda tidak dapat mengonfigurasi health check pada layanan backend tersebut.
Langkah selanjutnya
- Untuk mempelajari batasan yang berlaku pada Cloud Service Mesh, termasuk setelan lanjutan batasan pengelolaan traffic, lihat Batasan Cloud Service Mesh.
- Untuk menemukan kasus penggunaan dan pola arsitektur bagi layanan gRPC tanpa proxy, lihat Ringkasan layanan gRPC tanpa proxy.