Troubleshooting VirtualServer resources
This page describes how to troubleshoot VirtualServer and VirtualServer resource events.
After creating or updating a VirtualServer resource, you can immediately check if the NGINX configuration for that resource was successfully by using kubectl describe vs <resource-name>:
kubectl describe vs cafeEvents:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal AddedOrUpdated 16s nginx-ingress-controller Configuration for default/cafe was added or updatedIn the above example, we have a Normal event with the AddedOrUpdate reason, which informs us that the configuration was successfully applied.
Checking the events of a VirtualServerRoute is similar:
kubectl describe vsr coffeeEvents:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal AddedOrUpdated 1m nginx-ingress-controller Configuration for default/coffee was added or updatedWhen a VirtualServer’s routeSelector matches no VirtualServerRoutes, F5 NGINX Ingress Controller emits a Warning event, and the VirtualServer reports State: Warning. The warning shows that the VirtualServer serves no routes for the selected paths. Use this event to find a VirtualServer whose selector no longer matches any VirtualServerRoutes.
A routeSelector matches no VirtualServerRoutes in these cases:
- The selected VirtualServerRoutes are deleted.
- Their
ingressClassNamechanges, so NGINX Ingress Controller no longer owns them. - Their labels change, so they no longer match the selector.
To see this event, describe the VirtualServer:
kubectl describe vs cafeEvents:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning AddedOrUpdatedWithWarning 16s nginx-ingress-controller Configuration for default/cafe was added or updated with warning(s): VirtualServerRoute routeSelector app=coffee matched no VirtualServerRoutesTo clear the warning, make sure at least one VirtualServerRoute matches the selector:
- Recreate a deleted VirtualServerRoute.
- Restore its
ingressClassName. - Reapply the labels the selector requires.
After you apply one of these fixes, kubectl describe vs cafe shows the Normal AddedOrUpdated event again. State returns to Valid.