Skip to content

gRPC xDS (xDS API)

gRPC xDS is an extension of the gRPC framework that allows gRPC applications to dynamically receive configuration (such as listener and cluster configurations) via the xDS API, rather than relying on static configuration files.^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__grpc-echo__README.md]

This functionality enables a specific architecture known as Proxyless gRPC, where a gRPC application can integrate directly with a Service mesh (like Istio) to receive traffic management and security policies without requiring a traditional sidecar proxy (such as Envoy).^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__grpc-echo__README.md]

Implementation in Istio

In environments like Istio, Proxyless gRPC is often implemented using an injection template (e.g., grpc-agent).^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__grpc-echo__README.md]

This template modifies the standard sidecar injection behavior: while an istio-proxy container is still injected into the Pod, it is configured to run only the pilot-agent component, bypassing the Envoy proxy.^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__grpc-echo__README.md] The gRPC application within the Pod then communicates with pilot-agent to retrieve xDS configuration, establishing a direct data path that excludes the full proxy overhead.

Sources

  • 400-devops__07-Monitoring-and-Observability__k8s-istio__samples__grpc-echo__README.md