Key Concepts
IngressClass
Controller
k8s.io/ingress-nginx).Default Class
ingressClassName.Parameters
Required Permissions
How to View Ingress Classes
Select Cluster
View List
Search
How to View IngressClass Details
Find the IngressClass
Click IngressClass Name
Review Details
- Overview: Name, controller, default status, age
- Parameters: Reference to controller configuration resource
- Labels & Annotations: Metadata including default class annotation
- Events: Related Kubernetes events
How to Create an IngressClass
Click Create IngressClass
Write YAML
spec.controller- Controller identifier (required)metadata.annotations- Include default class annotation if neededspec.parameters- Optional controller configuration reference
Create
How to Edit an IngressClass
Open Actions Menu
Click Edit IngressClass
Modify Spec
- Set or remove default class annotation
- Update parameters reference
- Modify labels and annotations
Save
How to Delete an IngressClass
Open Actions Menu
Click Delete
Confirm
Default IngressClass
One IngressClass can be marked as the cluster default. Ingresses that don’t specifyingressClassName will use the default class.
Setting the default:
Controller Parameters
Parameters allow passing controller-specific configuration:Common Ingress Controllers
Troubleshooting
Ingress not being handled
Ingress not being handled
- Verify the Ingress specifies the correct
ingressClassName - Check if the IngressClass exists and has the right controller
- Verify the controller pods are running
- Check if a default IngressClass is set for Ingresses without explicit class
Multiple controllers responding
Multiple controllers responding
- Ensure each Ingress specifies explicit
ingressClassName - Only mark one IngressClass as default
- Check for legacy
kubernetes.io/ingress.classannotations on Ingresses
Parameters not taking effect
Parameters not taking effect
- Verify the parameters resource exists
- Check apiGroup, kind, and name are correct
- Ensure the controller supports the parameter type
- Verify scope matches the resource location
Cannot delete IngressClass
Cannot delete IngressClass
- Check if Ingresses are still referencing this class
- Verify you have delete permission
- Check for finalizers blocking deletion
Default class not working
Default class not working
- Verify annotation key is exactly
ingressclass.kubernetes.io/is-default-class - Ensure value is the string
"true"(quoted) - Check Kubernetes version supports default IngressClass (1.19+)
- Verify only one IngressClass is marked as default
FAQ
Do I need an IngressClass?
Do I need an IngressClass?
ingressClassName or rely on a default IngressClass. Without one, Ingresses may not be handled.Can I have multiple IngressClasses?
Can I have multiple IngressClasses?
ingressClassName on each Ingress to select which class handles it.What happens if I delete an IngressClass?
What happens if I delete an IngressClass?
How do I migrate from the legacy ingress.class annotation?
How do I migrate from the legacy ingress.class annotation?
spec.ingressClassName instead of the kubernetes.io/ingress.class annotation.Can I change the controller of an IngressClass?
Can I change the controller of an IngressClass?
What are parameters used for?
What are parameters used for?
Should I have a default IngressClass?
Should I have a default IngressClass?
How do I know which controller handles an IngressClass?
How do I know which controller handles an IngressClass?
spec.controller field. This string identifies the controller that watches for Ingresses with this class. Each controller has a unique identifier.