Design: Container Networking System
Design the networking layer for containerized microservices including intra-host and inter-host communication, service discovery, and network isolation. Out of scope are container orchestration scheduling and storage networking.
Functional Requirements
FR1: Enable communication between containers within the same host
FR2: Enable communication between containers across different hosts
FR3: Support service discovery for containers to find each other dynamically
FR4: Provide network isolation and security between different container groups
FR5: Allow containers to expose ports to external clients
FR6: Support scalability to thousands of containers
FR7: Ensure low latency and high throughput for container communication
Non-Functional Requirements
NFR1: Handle up to 10,000 containers across multiple hosts
NFR2: Network latency p99 should be under 10ms for container-to-container communication
NFR3: Availability of networking should be 99.9%
NFR4: Support dynamic container lifecycle (start, stop, move) without manual network reconfiguration