Edge-edge communication
This main focus of this release is implementing key component for edge-edge communication based on the POC from release v0.2. Edge-edge communication allows edge computing workloads (e.g. pods) from different edge clusters to communicate through virtual addressing. This capability is the foundation for future Fornax features such as edge computing storage and serverless platform. The implementation of VPC and subnet from the Mizar project have been extended to work across different physical clusters. There are 3 major components in this release:
- Mizar control plane (PR, in Mizar repo)
Allow creating VPC with specified VNI
Configure gateway host through configmap
Configure remote ("virtual") subnets and select the gateway host as their virtual bouncers
- Mizar data plane (PR, in Mizar repo)
Propagate virtual cluster info to Ebpf maps for transit XDP
Modify transit XDP on the edge gateway to match received packets with target subnet and divert traffic to user space if it belongs to a remote ("virtual") subnet
Disable direct path in the transit XDP if the packet comes from the edge gateway host
- Edge gateway agent (PR, in Fornax repo)
Listen to traffic in the user space on the gateway host
Convert received Geneve packet from the kernel space to inter-gateway packet
Convert received inter-gateway packet to Geneve packet
Communicate inter-gateway packets with other edge gateways
In addition to the above 3 components, a design draft has also been created for the next step features such as syncing edge gateway metadata. This will play a major roles in allowing distributed edge gateways to autonomously and efficiently adapt to network changes and vending inter-cluster network traffic.
Documentation and Automation
The following documentations have been added for team knowledge (onboarding and reference)
- Edge cluster setup guide. This scripts is now being converted to Bash scripts for automation
- Team onboarding docs:
K8s build doc with Bash scripts
Remote SSH Debugging Setup in Visual Studio Code