Tag: #gRPC
Kubernetes, DevOps and MLOps, written from things we ran and measured ourselves · 8 posts
8 posts are tagged #gRPC; the most recent was published on 2026-10-16.
Often tagged together: #gRPC 해부 8 #OpenTelemetry 3 #etcd 3 #Cilium 2 #HTTP/2 2
grpc-go Code Map: From ClientConn to http2Client, and from Serve to Handler
The grpc-go client has five layers. The channel (ClientConn) wraps the resolver wrapper and balancer wrapper, the balancer creates subchannels (addrConn), and for each call, the picker selects one READY subchannel and op
2026-10-16 · 16 min read #gRPC#grpc-go#코드 읽기#오픈소스#GogRPC Debugging and Observability: grpcurl, Reflection, channelz, and Metric Pitfalls
gRPC is binary, so you cannot peer into it with curl. Instead, servers act as windows through reflection (which grpcurl uses), standard health services, channelz providing statistics on channels, subchannels, and sockets
2026-10-16 · 18 min read #gRPC#grpcurl#서버 리플렉션#channelz#PrometheusgRPC in Action on a Small Cluster: etcd, CRI, Hubble, OTLP
We measured gRPC by simply reading four conversations on a small cluster with 8 nodes. kube-apiserver had 247 TCP connections open to etcd on the same node because Kubernetes creates a separate etcd client for each resou
2026-10-16 · 19 min read #gRPC#etcd#CRI#containerd#HubblegRPC in Kubernetes: Why It Floods a Single Pod and Health Checks
The default load balancing of a Kubernetes Service chooses a backend once when a connection is opened. Because gRPC reuses a single connection and funnels calls over it, increasing pods still sends calls from existing co
2026-10-16 · 19 min read #gRPC#쿠버네티스#부하 분산#헤드리스 서비스#xDSStreaming, deadline, retry, and keepalive: When calls run long or fail
gRPC methods fall into four categories depending on whether the request and response are single or streamed. Streams are governed by HTTP/2 flow control windows, time limits are propagated to downstream servers as the re
2026-10-16 · 20 min read #gRPC#스트리밍#deadline#재시도#keepalivegRPC over HTTP/2: Headers, 5-Byte Prefix, and Trailer Status Codes
A single gRPC call is an HTTP/2 stream. A request starts with POST, :path /package.service/method, content-type: application/grpc, and te: trailers, and each message is prefixed with 1 compression flag byte and 4 length
2026-10-16 · 20 min read #gRPC#HTTP/2#트레일러#상태 코드#grpc-timeoutProtobuf Wire Format: 21 Bytes One by One
A protobuf message is a sequence of 「tag (field number and wire type) + value」. Integers use varint, which is split into 7-bit chunks; strings and bundles have their length prepended; and default values are omitted entir
2026-10-16 · 12 min read #gRPC#protobuf#varint#직렬화#하위 호환The Problems gRPC Solves and the Big Picture: Contracts, Code Generation, Channels, and HTTP/2
gRPC breaks down "calling a function far away as if it were your own" into four components: contracts (.proto), language-specific code generated from those contracts (stubs), channels responsible for connection and load
2026-10-16 · 13 min read #gRPC#protobuf#HTTP/2#RPC#쿠버네티스