Appearance
Ingresses
A Kubernetes Ingress routes external HTTP traffic to a service in your namespace. Use ingresses on RemoteGPU to publish service-backed web apps on a managed apps.remotegpu.ai hostname.
RemoteGPU supports Kubernetes Ingress for teams that manage Kubernetes resources directly. The console can help you create a simple ingress, and kubectl can manage the same resource directly.
Before you create an ingress
Before you create an ingress, make sure you have:
- A running workload, because ingress only routes traffic.
- A
ClusterIPservice for the ingress backend. - A host that matches
<prefix>--<namespace-token>.apps.remotegpu.ai. - The platform ingress class,
traefik.
HTTPS for managed hosts is served by the shared *.apps.remotegpu.ai wildcard certificate.
Choose a workflow
Use the console when you want guided ingress creation for an existing service. You choose the service, port, host prefix, and path in the UI.
Use kubectl when you manage ingress rules from manifests. Create a standard networking.k8s.io/v1 Ingress that follows the RemoteGPU ingress profile.
Create an ingress
From the console:
- Open Kubernetes / Ingresses.
- Select a namespace.
- Click
Create ingress. - Choose the target service.
- Choose the backend port.
- Enter the ingress details.
| Console field | Description |
|---|---|
Ingress name | Kubernetes ingress name in the namespace |
Host prefix | The left side of the enforced hostname pattern |
Path | HTTP path for the backend rule |
Service | Existing service that should receive traffic |
Port | Service port the ingress backend should target |
The console shows the generated hostname before you create the ingress. For a namespace token such as 123456780000, a host prefix of demo-web becomes demo-web--123456780000.apps.remotegpu.ai.
RemoteGPU provides TLS for generated apps.remotegpu.ai hosts.
Supported ingress profile
The standard ingress flow is:
text
Deployment
-> Service
-> Ingress
-> public HTTP route| Area | Description |
|---|---|
| API version | networking.k8s.io/v1 Ingress |
| Backend type | Service-backed HTTP rules |
| Namespace boundary | The ingress must point to services in the same namespace |
| Hostnames | Hosts must match <prefix>--<namespace-token>.apps.remotegpu.ai for the target namespace |
| Ingress class | traefik |
| Path routing | Standard HTTP path routing with pathType |
| TLS | Managed apps.remotegpu.ai hosts use the platform wildcard certificate |
Use spec.ingressClassName: traefik when you want to be explicit. If omitted, RemoteGPU uses the platform default ingress class, traefik. Do not use the legacy kubernetes.io/ingress.class annotation.
Advanced ingress options
Traefik Middleware CRDs and router middleware annotations are not supported in tenant namespaces. Use standard Kubernetes Ingress path routing and handle application-specific rewrites or redirects in your service.
RemoteGPU does not expose ingress-layer request body size limits. Traefik enforces those limits through request buffering, which changes streaming request behavior. Enforce request body limits in your application when needed.
Do not add cert-manager.io/cluster-issuer or spec.tls for managed apps.remotegpu.ai hosts. HTTPS is terminated with the platform wildcard certificate.
Limits
| Pattern | Support |
|---|---|
NodePort or externalIPs service exposure | Use ingress-backed HTTP routing instead |
| Hosts outside the namespace-scoped pattern | Rejected |
defaultBackend | Not supported |
| Non-service ingress backends | Not supported |
| Per-ingress cert-manager annotations or custom TLS secrets | Not supported for managed apps.remotegpu.ai hosts |
Legacy kubernetes.io/ingress.class annotation | Not supported. Use spec.ingressClassName: traefik |
Legacy nginx.ingress.kubernetes.io/* annotations | Not supported |
| Creating or editing ingress-controller transport annotations | Not supported |
Traefik Middleware CRDs and router middleware annotations | Not supported |
| Unsupported Traefik annotations or CRDs | Not supported |
| Custom-domain onboarding through the Kubernetes console flow | Not supported |
How ingress shows up in the console
The console reads live ingress resources from your namespace.
| Action | Result |
|---|---|
Create ingress with kubectl | It appears in the console |
| Create ingress in the console | It appears in kubectl |
| Remove the target service or service port | The console shows an error state for the ingress |
Troubleshooting
| Symptom | What to check |
|---|---|
| Ingress creation is rejected because of the host | Use the namespace-scoped host pattern shown in the error response: <prefix>--<namespace-token>.apps.remotegpu.ai |
| The generated URL returns no application response | Confirm the ingress backend points to an existing ClusterIP service and that the service has ready endpoints |
| HTTPS configuration is rejected | Do not add spec.tls or cert-manager annotations for managed apps.remotegpu.ai hosts |
| Large requests fail | Check application, upload proxy, or client limits |
RemoteGPU does not expose Traefik request-body buffering limits for tenant ingresses.
Read next
- Read Services to create the internal backend.
- Read Deployments to run the workload first.