related-skills: cncf-argo, cncf-artifact-hub, cncf-aws-eks, cncf-azure-aks
OpenYurt in Cloud-Native Engineering
Category: Edge Computing
Status: Active
Stars: 1,600
Last Updated: 2026-04-22
Primary Language: Go
Documentation: Extending Kubernetes to edge computing scenarios with cloud-edge协同
Purpose and Use Cases
OpenYurt is a core component of the cloud-native ecosystem, serving as with cloud-edge协同
What Problem Does It Solve?
OpenYurt addresses the challenge of running Kubernetes workloads in edge computing environments. It provides cloud-edge协同, offline node support, and reduced cloud dependency.
When to Use This Project
Use OpenYurt when need to run Kubernetes at the edge, require offline operation, or have latency constraints. Not ideal for simple deployments or when edge AI workloads, IoT device management, or distributed cloud architectures.
Key Use Cases
- Edge AI Inference
- IoT Device Management
- CDN and Edge Computing
- Offline Kubernetes Operation
- Hybrid Cloud-Edge Deployments
Architecture Design Patterns
Core Components
- Yurttunnel: Enables cloud-to-edge tunnel communication
- Yurthub: Edge-side cache and API server proxy
- Edge Controller: Manages edge nodes and workloads
- OpenYurt Dashboard: UI for managing edge clusters
- Edge DNS: Local DNS resolution at edge
Component Interactions
- Edge Node → Yurthub: Nodes communicate through edge hub
- Yurthub → Cloud API Server: Yurthub proxies to cloud API server
- Yurttunnel → Cloud: Tunnel establishes secure connection
- Edge Controller → Nodes: Manages edge node lifecycle
Data Flow Patterns
- Workload Deployment: Yurt-ctl creates workloads → Deployed to edge nodes
- Health Monitoring: Kubelet → Yurthub → Cloud for health status
- Config Sync: ConfigMap/Secret sync between cloud and edge
- Tunnel Communication: Cloud ↔ Edge secure tunnel establishment
Design Principles
- Edge Autonomy: Edge can operate without cloud connectivity
- Cloud-Edge Synergy: Seamless integration between cloud and edge
- Kubernetes Compatibility: Full Kubernetes API compatibility
- Security: Secure communication between cloud and edge
Integration Approaches
Integration with Other CNCF Projects
- Kubernetes: Core platform with edge extensions
- KubeEdge: Alternative edge solution
- Istio: Service mesh for edge
- Prometheus: Monitoring for edge workloads
API Patterns
- Yurt-ctl CLI: Edge-specific kubectl extension
- YurtHub API: Edge API server proxy
- Tunnel Server API: Tunnel management
- CRDs: Custom resources for edge features
Configuration Patterns
- Yurtctl Commands: Edge cluster setup commands
- YurtHub Configuration: Edge hub settings
- Tunnel Configuration: Tunnel connection settings
- Helm Chart: OpenYurt deployment configuration
Extension Mechanisms
- Custom Yurthub Plugins: Extend edge caching logic
- Custom Tunnel Handlers: Add tunnel protocol support
- Edge Controllers: Custom edge workload management
Common Pitfalls and How to Avoid Them
Misconfigurations
- Network Partition: Cloud-edge network disconnection
- How to Avoid: Configure offline operation, implement local caching
- Tunnel Latency: High latency in tunnel connections
- How to Avoid: Optimize network paths, use regional tunnels
Performance Issues
- Config Sync Delay: Delayed config synchronization
- How to Avoid: Adjust sync intervals, optimize config sizes
- Controller Missing: Cloud controllers not available at edge
- How to Avoid: Use edge-native controllers, implement fallback logic
Operational Challenges
- DNS Resolution: Local DNS failing
- How to Avoid: Configure edge DNS, cache DNS entries
- Upgrade Complexity: Cloud and edge version mismatches
- How to Avoid: Test upgrades together, use version matrix
Security Pitfalls
Coding Practices
Idiomatic Configuration
- Edge-Aware Workloads: Design workloads for edge constraints
- Config Management: Minimize config dependencies
- Health Checks: Implement edge-appropriate health checks
API Usage Patterns
- Yurt-ctl join: Join node to edge cluster
- Yurt-ctl init: Initialize edge cluster
- kubectl commands: Standard kubectl operations
- Custom CRDs: Edge-specific custom resources
Observability Best Practices
- Edge Metrics: Collect edge-specific metrics
- Offline Monitoring: Monitor edge autonomy
- Network Monitoring: Track cloud-edge connectivity
Testing Strategies
- Network Partition Tests: Test offline operation
- Latency Tests: Validate tunnel performance
- Failover Tests: Test cloud-edge failover
Development Workflow
- Local Development: Use kind with Yurt extension
- Debug Commands: Check Yurthub and tunnel logs
- Test Environment: Set up edge cluster simulator
- CI/CD Integration: Automate edge testing
- Monitoring Setup: Configure edge observability
- Documentation: Maintain edge deployment guides
Fundamentals
Essential Concepts
- Yurt-Hub: Edge-side cache and proxy
- Yurt-Tunnel: Cloud-edge tunnel
- Edge-Node: Kubernetes node at edge
- Cloud-Edge: Cloud-edge communication pattern
- Yurt-ctl: Edge management CLI
- Edge-DNS: Local DNS resolver
- Edge-Pool: Group of edge nodes
- Edge-Controller: Edge workload manager
Terminology Glossary
- Yurt-Hub: Edge hub for API proxy and caching
- Yurt-Tunnel: Secure tunnel for cloud-edge
- Edge-Pool: Group of edge nodes
- Edge-Node: Kubernetes node at edge location
- Cloud-Edge: Architecture pattern
Data Models and Types
- EdgePool: Grouping of edge nodes
- YurtHubConfig: Edge hub configuration
- YurtTunnelConfig: Tunnel configuration
Lifecycle Management
- Node Join: Node joins edge pool → Yurthub sync → Ready
- Workload Deploy: Cloud creates → Edge deploy → Status sync
- Health Check: Kubelet → Yurthub → Cloud status
- Network Fail: Connection lost → Local operation → Reconnect
State Management
- Yurthub State: Cached Kubernetes state
- Tunnel State: Tunnel connection status
- Edge Node State: Node health and readiness
- Edge Pool State: Pool membership and status
Scaling and Deployment Patterns
Horizontal Scaling
- Edge Pool Scaling: Add edge nodes to pool
- Yurthub Scaling: Scale Yurthub instances
- Tunnel Scaling: Scale tunnel servers
High Availability
- Yurthub HA: Multiple Yurthub instances
- Tunnel HA: Redundant tunnel connections
- Edge Controller HA: Edge controller replicas
- Node Redundancy: Multiple edge nodes per pool
Production Deployments
- Cluster Setup: Initialize cloud and edge clusters
- Network Configuration: Configure secure cloud-edge network
- Security Setup: Enable TLS, certificates, RBAC
- Monitoring Setup: Configure edge-specific metrics
- Logging Setup: Centralize edge logs
- Backup Strategy: Backup configurations
- Resource Quotas: Limit edge node resources
- Update Strategy: Plan cloud-edge coordinated updates
Upgrade Strategies
- Chart Upgrade: Upgrade OpenYurt components
- Yurtctl Upgrade: Upgrade edge cluster components
- Node Upgrade: Upgrade edge nodes one at a time
- Testing: Validate cloud-edge communication
Resource Management
- CPU Resources: Set Yurthub and tunnel limits
- Memory Resources: Configure cache memory limits
- Network Resources: Configure tunnel bandwidth
- Storage Resources: Local storage for edge workloads
Additional Resources
- Official Documentation: https://openyurt.io/docs/
- GitHub Repository: Check the project's official documentation for repository link
- CNCF Project Page: cncf.io/projects/cncf-openyurt/
- Community: Check the official documentation for community channels
- Versioning: Refer to project's release notes for version-specific features
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
Basic Configuration
# Basic configuration example
apiVersion: v1
kind: ConfigMap
metadata:
name: {{project_name}}-config
namespace: default
data:
# Configuration goes here
config.yaml: |
# Base configuration
# Add your settings here
Kubernetes Deployment
# Kubernetes deployment for {{project_name}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{project_name}}
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: {{project_name}}
template:
metadata:
labels:
app: {{project_name}}
spec:
containers:
- name: {{project_name}}
image: {{project_name}}:latest
ports:
- containerPort: 8080
resources:
limits:
memory: "128Mi"
cpu: "500m"
Kubernetes Service
# Kubernetes service for {{project_name}}
apiVersion: v1
kind: Service
metadata:
name: {{project_name}}
namespace: default
spec:
selector:
app: {{project_name}}
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIP
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: openyurt3description: related-skills: cncf-argo, cncf-artifact-hub, cncf-aws-eks, cncf-azure-aks4---56789 related-skills: cncf-argo, cncf-artifact-hub, cncf-aws-eks, cncf-azure-aks10111213# OpenYurt in Cloud-Native Engineering1415**Category:** Edge Computing 16**Status:** Active 17**Stars:** 1,600 18**Last Updated:** 2026-04-22 19**Primary Language:** Go 20**Documentation:** [Extending Kubernetes to edge computing scenarios with cloud-edge协同](https://openyurt.io/docs/) 2122---2324## Purpose and Use Cases2526OpenYurt is a core component of the cloud-native ecosystem, serving as with cloud-edge协同2728### What Problem Does It Solve?2930OpenYurt addresses the challenge of running Kubernetes workloads in edge computing environments. It provides cloud-edge协同, offline node support, and reduced cloud dependency.3132### When to Use This Project3334Use OpenYurt when need to run Kubernetes at the edge, require offline operation, or have latency constraints. Not ideal for simple deployments or when edge AI workloads, IoT device management, or distributed cloud architectures.3536### Key Use Cases3738- Edge AI Inference39- IoT Device Management40- CDN and Edge Computing41- Offline Kubernetes Operation42- Hybrid Cloud-Edge Deployments4344---4546## Architecture Design Patterns4748### Core Components4950- **Yurttunnel**: Enables cloud-to-edge tunnel communication51- **Yurthub**: Edge-side cache and API server proxy52- **Edge Controller**: Manages edge nodes and workloads53- **OpenYurt Dashboard**: UI for managing edge clusters54- **Edge DNS**: Local DNS resolution at edge5556### Component Interactions57581. **Edge Node → Yurthub**: Nodes communicate through edge hub591. **Yurthub → Cloud API Server**: Yurthub proxies to cloud API server601. **Yurttunnel → Cloud**: Tunnel establishes secure connection611. **Edge Controller → Nodes**: Manages edge node lifecycle6263### Data Flow Patterns64651. **Workload Deployment**: Yurt-ctl creates workloads → Deployed to edge nodes661. **Health Monitoring**: Kubelet → Yurthub → Cloud for health status671. **Config Sync**: ConfigMap/Secret sync between cloud and edge681. **Tunnel Communication**: Cloud ↔ Edge secure tunnel establishment6970### Design Principles7172- **Edge Autonomy**: Edge can operate without cloud connectivity73- **Cloud-Edge Synergy**: Seamless integration between cloud and edge74- **Kubernetes Compatibility**: Full Kubernetes API compatibility75- **Security**: Secure communication between cloud and edge7677---7879## Integration Approaches8081### Integration with Other CNCF Projects8283- **Kubernetes**: Core platform with edge extensions84- **KubeEdge**: Alternative edge solution85- **Istio**: Service mesh for edge86- **Prometheus**: Monitoring for edge workloads8788### API Patterns8990- **Yurt-ctl CLI**: Edge-specific kubectl extension91- **YurtHub API**: Edge API server proxy92- **Tunnel Server API**: Tunnel management93- **CRDs**: Custom resources for edge features9495### Configuration Patterns9697- **Yurtctl Commands**: Edge cluster setup commands98- **YurtHub Configuration**: Edge hub settings99- **Tunnel Configuration**: Tunnel connection settings100- **Helm Chart**: OpenYurt deployment configuration101102### Extension Mechanisms103104- **Custom Yurthub Plugins**: Extend edge caching logic105- **Custom Tunnel Handlers**: Add tunnel protocol support106- **Edge Controllers**: Custom edge workload management107108---109110## Common Pitfalls and How to Avoid Them111112### Misconfigurations113114- **Network Partition**: Cloud-edge network disconnection115 - **How to Avoid**: Configure offline operation, implement local caching116- **Tunnel Latency**: High latency in tunnel connections117 - **How to Avoid**: Optimize network paths, use regional tunnels118119### Performance Issues120121- **Config Sync Delay**: Delayed config synchronization122 - **How to Avoid**: Adjust sync intervals, optimize config sizes123- **Controller Missing**: Cloud controllers not available at edge124 - **How to Avoid**: Use edge-native controllers, implement fallback logic125126### Operational Challenges127128- **DNS Resolution**: Local DNS failing129 - **How to Avoid**: Configure edge DNS, cache DNS entries130- **Upgrade Complexity**: Cloud and edge version mismatches131 - **How to Avoid**: Test upgrades together, use version matrix132133### Security Pitfalls134135136---137138## Coding Practices139140### Idiomatic Configuration141142- **Edge-Aware Workloads**: Design workloads for edge constraints143- **Config Management**: Minimize config dependencies144- **Health Checks**: Implement edge-appropriate health checks145146### API Usage Patterns147148- **Yurt-ctl join**: Join node to edge cluster149- **Yurt-ctl init**: Initialize edge cluster150- **kubectl commands**: Standard kubectl operations151- **Custom CRDs**: Edge-specific custom resources152153### Observability Best Practices154155- **Edge Metrics**: Collect edge-specific metrics156- **Offline Monitoring**: Monitor edge autonomy157- **Network Monitoring**: Track cloud-edge connectivity158159### Testing Strategies160161- **Network Partition Tests**: Test offline operation162- **Latency Tests**: Validate tunnel performance163- **Failover Tests**: Test cloud-edge failover164165### Development Workflow166167- **Local Development**: Use kind with Yurt extension168- **Debug Commands**: Check Yurthub and tunnel logs169- **Test Environment**: Set up edge cluster simulator170- **CI/CD Integration**: Automate edge testing171- **Monitoring Setup**: Configure edge observability172- **Documentation**: Maintain edge deployment guides173174---175176## Fundamentals177178### Essential Concepts179180- **Yurt-Hub**: Edge-side cache and proxy181- **Yurt-Tunnel**: Cloud-edge tunnel182- **Edge-Node**: Kubernetes node at edge183- **Cloud-Edge**: Cloud-edge communication pattern184- **Yurt-ctl**: Edge management CLI185- **Edge-DNS**: Local DNS resolver186- **Edge-Pool**: Group of edge nodes187- **Edge-Controller**: Edge workload manager188189### Terminology Glossary190191- **Yurt-Hub**: Edge hub for API proxy and caching192- **Yurt-Tunnel**: Secure tunnel for cloud-edge193- **Edge-Pool**: Group of edge nodes194- **Edge-Node**: Kubernetes node at edge location195- **Cloud-Edge**: Architecture pattern196197### Data Models and Types198199- **EdgePool**: Grouping of edge nodes200- **YurtHubConfig**: Edge hub configuration201- **YurtTunnelConfig**: Tunnel configuration202203### Lifecycle Management204205- **Node Join**: Node joins edge pool → Yurthub sync → Ready206- **Workload Deploy**: Cloud creates → Edge deploy → Status sync207- **Health Check**: Kubelet → Yurthub → Cloud status208- **Network Fail**: Connection lost → Local operation → Reconnect209210### State Management211212- **Yurthub State**: Cached Kubernetes state213- **Tunnel State**: Tunnel connection status214- **Edge Node State**: Node health and readiness215- **Edge Pool State**: Pool membership and status216217---218219## Scaling and Deployment Patterns220221### Horizontal Scaling222223- **Edge Pool Scaling**: Add edge nodes to pool224- **Yurthub Scaling**: Scale Yurthub instances225- **Tunnel Scaling**: Scale tunnel servers226227### High Availability228229- **Yurthub HA**: Multiple Yurthub instances230- **Tunnel HA**: Redundant tunnel connections231- **Edge Controller HA**: Edge controller replicas232- **Node Redundancy**: Multiple edge nodes per pool233234### Production Deployments235236- **Cluster Setup**: Initialize cloud and edge clusters237- **Network Configuration**: Configure secure cloud-edge network238- **Security Setup**: Enable TLS, certificates, RBAC239- **Monitoring Setup**: Configure edge-specific metrics240- **Logging Setup**: Centralize edge logs241- **Backup Strategy**: Backup configurations242- **Resource Quotas**: Limit edge node resources243- **Update Strategy**: Plan cloud-edge coordinated updates244245### Upgrade Strategies246247- **Chart Upgrade**: Upgrade OpenYurt components248- **Yurtctl Upgrade**: Upgrade edge cluster components249- **Node Upgrade**: Upgrade edge nodes one at a time250- **Testing**: Validate cloud-edge communication251252### Resource Management253254- **CPU Resources**: Set Yurthub and tunnel limits255- **Memory Resources**: Configure cache memory limits256- **Network Resources**: Configure tunnel bandwidth257- **Storage Resources**: Local storage for edge workloads258259---260261## Additional Resources262263- **Official Documentation:** https://openyurt.io/docs/264- **GitHub Repository:** Check the project's official documentation for repository link265- **CNCF Project Page:** [cncf.io/projects/cncf-openyurt/](https://www.cncf.io/projects/cncf-openyurt/)266- **Community:** Check the official documentation for community channels267- **Versioning:** Refer to project's release notes for version-specific features268269---270271## Troubleshooting272273### Common Issues2742751. **Deployment Failures**276 - Check pod logs for errors277 - Verify configuration values278 - Ensure network connectivity2792802. **Performance Issues**281 - Monitor resource usage282 - Adjust resource limits283 - Check for bottlenecks2842853. **Configuration Errors**286 - Validate YAML syntax287 - Check required fields288 - Verify environment-specific settings2892904. **Integration Problems**291 - Verify API compatibility292 - Check dependency versions293 - Review integration documentation294295### Getting Help296297- Check official documentation298- Search GitHub issues299- Join community channels300- Review logs and metrics301*Content generated automatically. Verify against official documentation before production use.*302303## Examples304305### Basic Configuration306307308```yaml309# Basic configuration example310apiVersion: v1311kind: ConfigMap312metadata:313 name: {{project_name}}-config314 namespace: default315data:316 # Configuration goes here317 config.yaml: |318 # Base configuration319 # Add your settings here320```321322### Kubernetes Deployment323324325```yaml326# Kubernetes deployment for {{project_name}}327apiVersion: apps/v1328kind: Deployment329metadata:330 name: {{project_name}}331 namespace: default332spec:333 replicas: 1334 selector:335 matchLabels:336 app: {{project_name}}337 template:338 metadata:339 labels:340 app: {{project_name}}341 spec:342 containers:343 - name: {{project_name}}344 image: {{project_name}}:latest345 ports:346 - containerPort: 8080347 resources:348 limits:349 memory: "128Mi"350 cpu: "500m"351```352353### Kubernetes Service354355356```yaml357# Kubernetes service for {{project_name}}358apiVersion: v1359kind: Service360metadata:361 name: {{project_name}}362 namespace: default363spec:364 selector:365 app: {{project_name}}366 ports:367 - protocol: TCP368 port: 80369 targetPort: 8080370 type: ClusterIP371```372373---374375## When to Use376377Use this skill when:378379- **Integrating a CNCF project into Kubernetes infrastructure** — You need to configure, deploy, or troubleshoot a cloud-native tool within a cluster380- **Designing cloud-native architecture** — You are selecting and integrating CNCF tools to solve specific infrastructure challenges381- **Resolving operational issues** — A CNCF component is misbehaving, underperforming, or needs configuration changes382---383384## Core Workflow3853861. **Assess Requirements** — Understand the use case, scale, integration needs, and existing infrastructure. **Checkpoint:** Document requirements, constraints, and success criteria.3873882. **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.3893903. **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.3913924. **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.393394---395396## Constraints397398### MUST DO399- Include at least one complete working YAML manifest example400- Note when content is auto-generated vs. manually verified401- Reference relevant CNCF project documentation402403### MUST NOT DO404- Deploy manifests without testing in a staging environment first405- Use deprecated API versions (e.g., apps/v1beta1)406- Omit resource limits and requests in Kubernetes manifests