A look at the new NGINX VirtualServer and VirtualServerRoute resources
Blog post from Octopus Deploy
Kubernetes Ingress resources enable efficient management of incoming HTTP traffic by allowing multiple services to be exposed through a single public IP address, with NGINX being a popular choice for ingress controllers. However, standard Ingress resources often required customization through annotations or configmaps for more complex routing needs. The introduction of version 1.5 of the NGINX ingress controller, featuring two custom resource definitions (CRDs)—VirtualServer and VirtualServerRoute—addresses these limitations by offering advanced networking capabilities. The blog details how to set up a Kubernetes cluster using Docker Desktop and deploy a sample application, describing how VirtualServer resources can be configured for tasks like traffic splitting, load balancing, and defining timeouts and retries, all of which were previously managed through annotations. Additionally, VirtualServerRoute allows for more granular routing, enhancing flexibility and reducing the complexity of managing Ingress resources. This approach not only simplifies the implementation of sophisticated network rules but also promotes better portability and maintainability within the Kubernetes ecosystem.