¡Finalmente logramos que gRPC funcionara en #dstack después de pasar un día entero! Dado que el gateway de dstack puede envolver cualquier TCP en TLS, asumí que simplemente funcionaría. No lo hizo.
El detalle clave: gRPC se ejecuta sobre HTTP/2. HTTP/2 normalmente se basa en ALPN (Negociación de Protocolo de Capa de Aplicación) durante el apretón de manos TLS.
Piensa en ALPN como el momento en que ambas partes acuerdan qué protocolo utilizar (h2 para HTTP/2) antes de intercambiar cualquier dato real. Si este paso falla, la conexión retrocede a HTTP/1.1, que gRPC no puede usar.
Para que un gateway maneje gRPC correctamente, debe: 1️⃣ Soportar HTTP/2 de extremo a extremo 2️⃣ Negociar h2 con ALPN durante el apretón de manos TLS 3️⃣ Preservar el enmarcado binario y los trailers de gRPC Si falta alguno de estos, verás bloqueos extraños, errores faltantes o flujos rotos.
668