Envoy in Cloud-Native Engineering
Category: cars
Status: Active
Stars: 27,866
Last Updated: 2026-04-22
Primary Language: C++
Documentation: https://www.envoyproxy.io/docs/
Purpose and Use Cases
Envoy is a core component of the cloud-native ecosystem, serving as a cloud-native edge/middle/service proxy providing advanced traffic management, observability, and security for service-to-service communication.
What Problem Does It Solve?
The complexity of service-to-service communication in distributed systems, including load balancing, circuit breaking, retries, timeouts, mutual TLS, and observability.
When to Use This Project
Use Envoy as a sidecar proxy in a service mesh, as an edge router for ingress traffic, or as a proxy for service-to-service communication. It's ideal when you need advanced traffic management, mutual TLS, or observability features.
Key Use Cases
- API gateway and ingress controller
- Service mesh sidecar proxy
- Rate limiting and request routing
- Mutual TLS termination
- Distributed tracing integration
Architecture Design Patterns
Core Components
- Listener: Network endpoint that accepts incoming connections
- Filter Chain: Sequence of filters that process connections
- Cluster: Logical group of downstream services
- Cluster Manager: Manages clusters and health checking
- HTTP Connection Manager: HTTP-specific processing
- Service Discovery: Dynamic configuration of upstream hosts
- Statistics: Fine-grained metrics collection
Component Interactions
- Client → Listener: Incoming connection
- Listener → Filter Chain: Processes connection
- Filter → Cluster: Routes to upstream
- Cluster Manager → Health Check: Monitors host health
- Service Discovery → Cluster Manager: Updates host list
- Stats → Monitoring System: Exports metrics
Data Flow Patterns
- Request Flow: Client → Listener → Filter → Cluster → Upstream
- Filter Processing: Request headers → Request body → Response headers → Response body
- Health Checking: Active checks → Host status update → Cluster manager → Route updates
- Configuration: Admin API/XDS → Management server → Filter chain → Listener
Design Principles
- Data Plane/Control Plane Separation: Independent evolution
- Extensibility: Custom filters and extensions
- L7 Awareness: HTTP and gRPC handling
- ** observability First**: Built-in stats, tracing, logging
- Graceful Shutdowns: Zero-downtime configuration changes
- Async, Event-Driven: Non-blocking architecture
Integration Approaches
Integration with Other CNCF Projects
- Kubernetes: Ingress controllers, service mesh sidecars
- Istio: Primary proxy for service mesh
- Linkerd: Alternative service mesh using Envoy
- API Gateways: Edge routing and gateway functionality
- Service Meshes: Data plane for traffic management
- Distributed Tracing: Integration with Jaeger, Zipkin
- Monitoring: Metrics for Prometheus
API Patterns
- GRPC/XDS: Dynamic configuration protocol
- Admin API: Management and debugging
- HTTP/2: Client communication
- RESTful Admin: Configuration management
- Extension API: Custom filter development
Configuration Patterns
- Bootstrap Configuration: Initial configuration
- XDS Protocol: Dynamic configuration
- Admin Configuration: Management interface
- JSON/YAML: Human-readable formats
Extension Mechanisms
- Custom Filters: HTTP and network filters
- Custom Clusters: Custom cluster types
- Extensions: C++ and WebAssembly
- Lua Scripts: Runtime extensibility
- Filters Chain: Ordered filter processing
Common Pitfalls and How to Avoid Them
Misconfigurations
- Route Configuration: Incorrect route matching
- Cluster Configuration: Wrong health checks
- Filter Chain: Incorrect filter ordering
- TLS Configuration: Misconfigured certificates
- Rate Limiting: Incorrect limits
- Circuit Breakers: Not configured
Performance Issues
- Memory Usage: High memory for connections
- CPU Usage: High CPU for request processing
- Latency: Proxy overhead
- Connection Limits: Connection pooling issues
- Filter Performance: Slow filter chains
- Configuration Reload: Frequent config changes
Operational Challenges
- Configuration Management: XDS complexity
- Debugging: Complex traffic issues
- Resource Tuning: Memory and CPU optimization
- Security: Certificate management
- Rollouts: Zero-downtime configuration changes
Security Pitfalls
- TLS Configuration: Weak cipher suites
- Access Control: Missing authorization filters
- Rate Limiting: Not configured
- XDS Security: Unauthorized configuration changes
- Certificate Management: Stale certificates
Coding Practices
Idiomatic Configuration
- Bootstrap Configuration: Initial setup
- XDS for Dynamic Config: Runtime updates
- JSON/YAML: Human-readable formats
- Admin API: Runtime management
API Usage Patterns
- GRPC/XDS API: Configuration
- Admin API: Management and debugging
- HTTP API: Service communication
- Extension API: Custom development
Observability Best Practices
- Stats: Fine-grained metrics
- Tracing: Distributed tracing support
- Access Logs: Request logging
- Admin Interface: Debugging information
- Observability Plugins: Custom extensions
Testing Strategies
- Unit Tests: Filter and plugin tests
- Integration Tests: Proxy behavior
- Fuzz Tests: Security testing
- Performance Tests: Throughput measurement
- Compatibility Tests: API compatibility
Development Workflow
- Development: envoy-dev container
- Testing: GoogleTest framework
- Debugging: Admin interface, logging
- Deployment: Docker, K8s deployments
- CI/CD: GitHub Actions, buildkite
- Tools: envoy-filter, envoy-bazel
Fundamentals
Essential Concepts
- Listener: Network listener accepting connections
- Filter: Processes connection/request data
- Cluster: Logical group of upstream hosts
- Host: Individual upstream server
- Route: Rule matching requests to clusters
- Virtual Host: Set of routes with same FQDN
- HTTP Connection Manager: HTTP-specific filter
- Circuit Breaker: Protection against failures
- Rate Limiter: Request rate control
- Health Check: Upstream host health monitoring
Terminology Glossary
- Listener: Network endpoint
- Filter: Connection/request processor
- Cluster: Upstream service group
- Host: Individual upstream server
- Route: Request-to-cluster mapping
- Virtual Host: FQDN-based routing
- Circuit Breaker: Failure protection
- Rate Limiter: Request rate control
- Health Check: Upstream health monitoring
- Admin Interface: Management endpoint
Data Models and Types
- Listener Config: Listener configuration
- Cluster Config: Cluster configuration
- Route Config: Route configuration
- Filter Config: Filter configuration
- Health Check: Health check configuration
- Rate Limit Config: Rate limit configuration
- Circuit Breaker Config: Circuit breaker settings
- Host: Upstream host definition
- Route: Route entry
- Virtual Host: Virtual host configuration
Lifecycle Management
- Connection Lifecycle: Accept → Process → Close
- Request Lifecycle: Headers → Body → Trailers
- Configuration Lifecycle: Load → Validate → Apply
- Health Check Lifecycle: Start → Check → Update
- Rate Limit Lifecycle: Request → Limit → Allow/Deny
- Circuit Breaker Lifecycle: Active → Breaking → Recovering
State Management
- Connection State: Active connections
- Cluster State: Upstream host health
- Route State: Route matches
- Stats: Runtime statistics
- Cache: Response caching state
- Configuration: Applied configuration
Scaling and Deployment Patterns
Horizontal Scaling
- Instance Scaling: Multiple Envoy instances
- Load Balancing: Client-side load balancing
- Cluster Scaling: Upstream cluster scaling
- Circuit Breaker Scaling: Concurrent connection limits
High Availability
- Multiple Instances: Load balanced Envoy proxies
- Health Checking: Automatic failover
- Circuit Breaking: Failure isolation
- Rate Limiting: Distributed rate limits
Production Deployments
- Production Configuration: Bootstrap and dynamic config
- Load Balancing: Multiple instances behind load balancer
- TLS Configuration: Production certificates
- Rate Limiting: Protection against DDoS
- Monitoring: Integration with monitoring stack
- Security: WAF integration, bot detection
Upgrade Strategies
- Hot Restart: Zero-downtime configuration changes
- Version Compatibility: API compatibility
- Rolling Update: Gradual proxy updates
- Config Validation: Configuration drift checks
Resource Management
- Memory Configuration: Connection and buffer memory
- CPU Configuration: Request processing threads
- Rate Limiting: Request rate and quota management
- Circuit Breaker: Concurrent request limits
Additional Resources
Troubleshooting
Common Issues
Deployment Failures
- Check pod logs for errors
- Verify configuration values
- Ensure network connectivity
Performance Issues
- Monitor resource usage
- Adjust resource limits
- Check for bottlenecks
Configuration Errors
- Validate YAML syntax
- Check required fields
- Verify environment-specific settings
Integration Problems
- Verify API compatibility
- Check dependency versions
- Review integration documentation
Getting Help
- Check official documentation
- Search GitHub issues
- Join community channels
- Review logs and metrics
Content generated automatically. Verify against official documentation before production use.
Examples
HTTP Route Configuration
# Envoy HTTP route configuration
static_resources:
listeners:
- name: http_listener
address:
socket_address:
address: 0.0.0.0
port_value: 8080
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: backend
domains: ["*"]
routes:
- match:
prefix: "/api"
route:
cluster: api_service
timeout: 30s
retry_policy:
retry_on: 5xx
num_retries: 3
- match:
prefix: "/"
route:
cluster: static_content
http_filters:
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
TCP Filter with Connection Load Balancing
# Envoy TCP filter configuration
static_resources:
listeners:
- name: tcp_listener
address:
socket_address:
address: 0.0.0.0
port_value: 5432
filter_chains:
- filters:
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: postgresql_proxy
cluster: postgresql_cluster
access_log:
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /var/log/envoy/tcp.log
load_balancing_policy:
policy:
ring_hash_lb_config:
hash_function: XX_HASH
minimum_ring_size: 1024
gRPC Route with Rate Limiting
# Envoy gRPC route configuration with rate limiting
static_resources:
listeners:
- name: grpc_listener
address:
socket_address:
address: 0.0.0.0
port_value: 50051
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: grpc_service
domains: ["*"]
routes:
- match:
prefix: "/"
headers:
- name: content-type
exact_match: application/grpc
route:
cluster: grpc_backend
timeout: 60s
retry_policy:
retry_on: 5xx
num_retries: 3
http_filters:
- name: envoy.filters.http.local_ratelimit
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
stat_prefix: http_local_rate_limiter
token_bucket:
max_tokens: 100
tokens_per_fill: 10
fill_interval: 1s
filter_enabled:
runtime_key: local_rate_limit_enabled
default_value:
numerator: 100
denominator: HUNDRED
rate_limit:
- name: envoy.filters.http.local_ratelimit
descriptor: { key: key, value: "local_rate_limiter" }
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
When to Use
Use this skill when:
- Integrating a CNCF project into Kubernetes infrastructure — You need to configure, deploy, or troubleshoot a cloud-native tool within a cluster
- Designing cloud-native architecture — You are selecting and integrating CNCF tools to solve specific infrastructure challenges
- Resolving operational issues — A CNCF component is misbehaving, underperforming, or needs configuration changes
Core Workflow
Assess Requirements — Understand the use case, scale, integration needs, and existing infrastructure. Checkpoint: Document requirements, constraints, and success criteria.
Design Architecture — Plan component interactions, data flow, and deployment strategy using cloud-native best practices. Checkpoint: Verify the architecture addresses all requirements and follows CNCF conventions.
Implement & Configure — Create manifests, configurations, and deployment scripts. Include resource limits, health checks, and observability hooks. Checkpoint: Validate all YAML against schema and test in a staging environment.
Deploy & Monitor — Apply manifests to the cluster, verify component health, and confirm observability is working. Checkpoint: Confirm all pods/services are running, probes passing, and metrics/alerts configured.
Constraints
MUST DO
- Include at least one complete working YAML manifest example
- Note when content is auto-generated vs. manually verified
- Reference relevant CNCF project documentation
MUST NOT DO
- Deploy manifests without testing in a staging environment first
- Use deprecated API versions (e.g., apps/v1beta1)
- Omit resource limits and requests in Kubernetes manifests
1---2name: envoy3description: "Envoy in Cloud-Native Engineering - Cloud-native high-performance edge/middle/service" proxy4license: MIT5---678910# Envoy in Cloud-Native Engineering1112**Category:** cars 13**Status:** Active 14**Stars:** 27,866 15**Last Updated:** 2026-04-22 16**Primary Language:** C++ 17**Documentation:** [https://www.envoyproxy.io/docs/](https://www.envoyproxy.io/docs/) 1819---2021## Purpose and Use Cases2223Envoy is a core component of the cloud-native ecosystem, serving as a cloud-native edge/middle/service proxy providing advanced traffic management, observability, and security for service-to-service communication.2425### What Problem Does It Solve?2627The complexity of service-to-service communication in distributed systems, including load balancing, circuit breaking, retries, timeouts, mutual TLS, and observability.2829### When to Use This Project3031Use Envoy as a sidecar proxy in a service mesh, as an edge router for ingress traffic, or as a proxy for service-to-service communication. It's ideal when you need advanced traffic management, mutual TLS, or observability features.3233### Key Use Cases343536- API gateway and ingress controller37- Service mesh sidecar proxy38- Rate limiting and request routing39- Mutual TLS termination40- Distributed tracing integration414243---4445## Architecture Design Patterns4647### Core Components484950- **Listener**: Network endpoint that accepts incoming connections51- **Filter Chain**: Sequence of filters that process connections52- **Cluster**: Logical group of downstream services53- **Cluster Manager**: Manages clusters and health checking54- **HTTP Connection Manager**: HTTP-specific processing55- **Service Discovery**: Dynamic configuration of upstream hosts56- **Statistics**: Fine-grained metrics collection575859### Component Interactions6061621. **Client → Listener**: Incoming connection632. **Listener → Filter Chain**: Processes connection643. **Filter → Cluster**: Routes to upstream654. **Cluster Manager → Health Check**: Monitors host health665. **Service Discovery → Cluster Manager**: Updates host list676. **Stats → Monitoring System**: Exports metrics686970### Data Flow Patterns7172731. **Request Flow**: Client → Listener → Filter → Cluster → Upstream742. **Filter Processing**: Request headers → Request body → Response headers → Response body753. **Health Checking**: Active checks → Host status update → Cluster manager → Route updates764. **Configuration**: Admin API/XDS → Management server → Filter chain → Listener777879### Design Principles808182- **Data Plane/Control Plane Separation**: Independent evolution83- **Extensibility**: Custom filters and extensions84- **L7 Awareness**: HTTP and gRPC handling85- ** observability First**: Built-in stats, tracing, logging86- **Graceful Shutdowns**: Zero-downtime configuration changes87- **Async, Event-Driven**: Non-blocking architecture888990---9192## Integration Approaches9394### Integration with Other CNCF Projects959697- **Kubernetes**: Ingress controllers, service mesh sidecars98- **Istio**: Primary proxy for service mesh99- **Linkerd**: Alternative service mesh using Envoy100- **API Gateways**: Edge routing and gateway functionality101- **Service Meshes**: Data plane for traffic management102- **Distributed Tracing**: Integration with Jaeger, Zipkin103- **Monitoring**: Metrics for Prometheus104105106### API Patterns107108109- **GRPC/XDS**: Dynamic configuration protocol110- **Admin API**: Management and debugging111- **HTTP/2**: Client communication112- **RESTful Admin**: Configuration management113- **Extension API**: Custom filter development114115116### Configuration Patterns117118119- **Bootstrap Configuration**: Initial configuration120- **XDS Protocol**: Dynamic configuration121- **Admin Configuration**: Management interface122- **JSON/YAML**: Human-readable formats123124125### Extension Mechanisms126127128- **Custom Filters**: HTTP and network filters129- **Custom Clusters**: Custom cluster types130- **Extensions**: C++ and WebAssembly131- **Lua Scripts**: Runtime extensibility132- **Filters Chain**: Ordered filter processing133134135---136137## Common Pitfalls and How to Avoid Them138139### Misconfigurations140141142- **Route Configuration**: Incorrect route matching143- **Cluster Configuration**: Wrong health checks144- **Filter Chain**: Incorrect filter ordering145- **TLS Configuration**: Misconfigured certificates146- **Rate Limiting**: Incorrect limits147- **Circuit Breakers**: Not configured148149150### Performance Issues151152153- **Memory Usage**: High memory for connections154- **CPU Usage**: High CPU for request processing155- **Latency**: Proxy overhead156- **Connection Limits**: Connection pooling issues157- **Filter Performance**: Slow filter chains158- **Configuration Reload**: Frequent config changes159160161### Operational Challenges162163164- **Configuration Management**: XDS complexity165- **Debugging**: Complex traffic issues166- **Resource Tuning**: Memory and CPU optimization167- **Security**: Certificate management168- **Rollouts**: Zero-downtime configuration changes169170171### Security Pitfalls172173174- **TLS Configuration**: Weak cipher suites175- **Access Control**: Missing authorization filters176- **Rate Limiting**: Not configured177- **XDS Security**: Unauthorized configuration changes178- **Certificate Management**: Stale certificates179180181---182183## Coding Practices184185### Idiomatic Configuration186187188- **Bootstrap Configuration**: Initial setup189- **XDS for Dynamic Config**: Runtime updates190- **JSON/YAML**: Human-readable formats191- **Admin API**: Runtime management192193194### API Usage Patterns195196197- **GRPC/XDS API**: Configuration198- **Admin API**: Management and debugging199- **HTTP API**: Service communication200- **Extension API**: Custom development201202203### Observability Best Practices204205206- **Stats**: Fine-grained metrics207- **Tracing**: Distributed tracing support208- **Access Logs**: Request logging209- **Admin Interface**: Debugging information210- **Observability Plugins**: Custom extensions211212213### Testing Strategies214215216- **Unit Tests**: Filter and plugin tests217- **Integration Tests**: Proxy behavior218- **Fuzz Tests**: Security testing219- **Performance Tests**: Throughput measurement220- **Compatibility Tests**: API compatibility221222223### Development Workflow224225226- **Development**: envoy-dev container227- **Testing**: GoogleTest framework228- **Debugging**: Admin interface, logging229- **Deployment**: Docker, K8s deployments230- **CI/CD**: GitHub Actions, buildkite231- **Tools**: envoy-filter, envoy-bazel232233234---235236## Fundamentals237238### Essential Concepts239240241- **Listener**: Network listener accepting connections242- **Filter**: Processes connection/request data243- **Cluster**: Logical group of upstream hosts244- **Host**: Individual upstream server245- **Route**: Rule matching requests to clusters246- **Virtual Host**: Set of routes with same FQDN247- **HTTP Connection Manager**: HTTP-specific filter248- **Circuit Breaker**: Protection against failures249- **Rate Limiter**: Request rate control250- **Health Check**: Upstream host health monitoring251252253### Terminology Glossary254255256- **Listener**: Network endpoint257- **Filter**: Connection/request processor258- **Cluster**: Upstream service group259- **Host**: Individual upstream server260- **Route**: Request-to-cluster mapping261- **Virtual Host**: FQDN-based routing262- **Circuit Breaker**: Failure protection263- **Rate Limiter**: Request rate control264- **Health Check**: Upstream health monitoring265- **Admin Interface**: Management endpoint266267268### Data Models and Types269270271- **Listener Config**: Listener configuration272- **Cluster Config**: Cluster configuration273- **Route Config**: Route configuration274- **Filter Config**: Filter configuration275- **Health Check**: Health check configuration276- **Rate Limit Config**: Rate limit configuration277- **Circuit Breaker Config**: Circuit breaker settings278- **Host**: Upstream host definition279- **Route**: Route entry280- **Virtual Host**: Virtual host configuration281282283### Lifecycle Management284285286- **Connection Lifecycle**: Accept → Process → Close287- **Request Lifecycle**: Headers → Body → Trailers288- **Configuration Lifecycle**: Load → Validate → Apply289- **Health Check Lifecycle**: Start → Check → Update290- **Rate Limit Lifecycle**: Request → Limit → Allow/Deny291- **Circuit Breaker Lifecycle**: Active → Breaking → Recovering292293294### State Management295296297- **Connection State**: Active connections298- **Cluster State**: Upstream host health299- **Route State**: Route matches300- **Stats**: Runtime statistics301- **Cache**: Response caching state302- **Configuration**: Applied configuration303304305---306307## Scaling and Deployment Patterns308309### Horizontal Scaling310311312- **Instance Scaling**: Multiple Envoy instances313- **Load Balancing**: Client-side load balancing314- **Cluster Scaling**: Upstream cluster scaling315- **Circuit Breaker Scaling**: Concurrent connection limits316317318### High Availability319320321- **Multiple Instances**: Load balanced Envoy proxies322- **Health Checking**: Automatic failover323- **Circuit Breaking**: Failure isolation324- **Rate Limiting**: Distributed rate limits325326327### Production Deployments328329330- **Production Configuration**: Bootstrap and dynamic config331- **Load Balancing**: Multiple instances behind load balancer332- **TLS Configuration**: Production certificates333- **Rate Limiting**: Protection against DDoS334- **Monitoring**: Integration with monitoring stack335- **Security**: WAF integration, bot detection336337338### Upgrade Strategies339340341- **Hot Restart**: Zero-downtime configuration changes342- **Version Compatibility**: API compatibility343- **Rolling Update**: Gradual proxy updates344- **Config Validation**: Configuration drift checks345346347### Resource Management348349350- **Memory Configuration**: Connection and buffer memory351- **CPU Configuration**: Request processing threads352- **Rate Limiting**: Request rate and quota management353- **Circuit Breaker**: Concurrent request limits354355356---357358## Additional Resources359360- **Official Documentation:** [https://www.envoyproxy.io/docs/](https://www.envoyproxy.io/docs/)361- **GitHub Repository:** [github.com/envoyproxy/envoy](https://github.com/envoyproxy/envoy)362- **CNCF Project Page:** [cncf.io/projects/envoy/](https://www.cncf.io/projects/envoy/)363- **Community:** Check the GitHub repository for community channels364- **Versioning:** Refer to project's release notes for version-specific features365366---367368## Troubleshooting369370### Common Issues3713721. **Deployment Failures**373 - Check pod logs for errors374 - Verify configuration values375 - Ensure network connectivity3763772. **Performance Issues**378 - Monitor resource usage379 - Adjust resource limits380 - Check for bottlenecks3813823. **Configuration Errors**383 - Validate YAML syntax384 - Check required fields385 - Verify environment-specific settings3863874. **Integration Problems**388 - Verify API compatibility389 - Check dependency versions390 - Review integration documentation391392### Getting Help393394- Check official documentation395- Search GitHub issues396- Join community channels397- Review logs and metrics398*Content generated automatically. Verify against official documentation before production use.*399400## Examples401402### HTTP Route Configuration403404405```yaml406# Envoy HTTP route configuration407static_resources:408 listeners:409 - name: http_listener410 address:411 socket_address:412 address: 0.0.0.0413 port_value: 8080414 filter_chains:415 - filters:416 - name: envoy.filters.network.http_connection_manager417 typed_config:418 "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager419 stat_prefix: ingress_http420 codec_type: AUTO421 route_config:422 name: local_route423 virtual_hosts:424 - name: backend425 domains: ["*"]426 routes:427 - match:428 prefix: "/api"429 route:430 cluster: api_service431 timeout: 30s432 retry_policy:433 retry_on: 5xx434 num_retries: 3435 - match:436 prefix: "/"437 route:438 cluster: static_content439 http_filters:440 - name: envoy.filters.http.router441 typed_config:442 "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router443```444445### TCP Filter with Connection Load Balancing446447448```yaml449# Envoy TCP filter configuration450static_resources:451 listeners:452 - name: tcp_listener453 address:454 socket_address:455 address: 0.0.0.0456 port_value: 5432457 filter_chains:458 - filters:459 - name: envoy.filters.network.tcp_proxy460 typed_config:461 "@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy462 stat_prefix: postgresql_proxy463 cluster: postgresql_cluster464 access_log:465 - name: envoy.access_loggers.file466 typed_config:467 "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog468 path: /var/log/envoy/tcp.log469 load_balancing_policy:470 policy:471 ring_hash_lb_config:472 hash_function: XX_HASH473 minimum_ring_size: 1024474```475476### gRPC Route with Rate Limiting477478479```yaml480# Envoy gRPC route configuration with rate limiting481static_resources:482 listeners:483 - name: grpc_listener484 address:485 socket_address:486 address: 0.0.0.0487 port_value: 50051488 filter_chains:489 - filters:490 - name: envoy.filters.network.http_connection_manager491 typed_config:492 "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager493 stat_prefix: ingress_http494 codec_type: AUTO495 route_config:496 name: local_route497 virtual_hosts:498 - name: grpc_service499 domains: ["*"]500 routes:501 - match:502 prefix: "/"503 headers:504 - name: content-type505 exact_match: application/grpc506 route:507 cluster: grpc_backend508 timeout: 60s509 retry_policy:510 retry_on: 5xx511 num_retries: 3512 http_filters:513 - name: envoy.filters.http.local_ratelimit514 typed_config:515 "@type": type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit516 stat_prefix: http_local_rate_limiter517 token_bucket:518 max_tokens: 100519 tokens_per_fill: 10520 fill_interval: 1s521 filter_enabled:522 runtime_key: local_rate_limit_enabled523 default_value:524 numerator: 100525 denominator: HUNDRED526 rate_limit:527 - name: envoy.filters.http.local_ratelimit528 descriptor: { key: key, value: "local_rate_limiter" }529 - name: envoy.filters.http.router530 typed_config:531 "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router532```533534---535536## When to Use537538Use this skill when:539540- **Integrating a CNCF project into Kubernetes infrastructure** — You need to configure, deploy, or troubleshoot a cloud-native tool within a cluster541- **Designing cloud-native architecture** — You are selecting and integrating CNCF tools to solve specific infrastructure challenges542- **Resolving operational issues** — A CNCF component is misbehaving, underperforming, or needs configuration changes543---544545## Core Workflow5465471. **Assess Requirements** — Understand the use case, scale, integration needs, and existing infrastructure. **Checkpoint:** Document requirements, constraints, and success criteria.5485492. **Design Architecture** — Plan component interactions, data flow, and deployment strategy using cloud-native best practices. **Checkpoint:** Verify the architecture addresses all requirements and follows CNCF conventions.5505513. **Implement & Configure** — Create manifests, configurations, and deployment scripts. Include resource limits, health checks, and observability hooks. **Checkpoint:** Validate all YAML against schema and test in a staging environment.5525534. **Deploy & Monitor** — Apply manifests to the cluster, verify component health, and confirm observability is working. **Checkpoint:** Confirm all pods/services are running, probes passing, and metrics/alerts configured.554555---556557## Constraints558559### MUST DO560- Include at least one complete working YAML manifest example561- Note when content is auto-generated vs. manually verified562- Reference relevant CNCF project documentation563564### MUST NOT DO565- Deploy manifests without testing in a staging environment first566- Use deprecated API versions (e.g., apps/v1beta1)567- Omit resource limits and requests in Kubernetes manifests