Render Design Doc: Reducing Free-Tier Networking Footprint
Blog post from Render
Render has developed a strategy to reduce the networking overhead in its free-tier infrastructure by minimizing the number of Kubernetes (K8s) Services tied to each Revision to zero, thereby minimizing the burden on K8s networking machinery. This approach involves modifying the Knative Activator to track Pods directly instead of relying on Endpoints updates, allowing for more efficient handling of requests by utilizing the Pod's IP. The plan to roll out this change includes running the new Pod-based flow in parallel with the existing Endpoint-based flow, using specific labeling and environment variables to manage deployment and ensure a smooth transition. This change is expected to enhance system stability, lower CPU usage for calico and kube-proxy, and enable clusters to support more paid-tier customers without impacting free-tier services. The rollout will be conducted gradually, starting with Render-owned free-tier services and moving onto new and existing free-tier services across clusters, with the ability to roll back if necessary.