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 | What it means |
|---|---|
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 |
Max request body size | Ingress request limit. Default 8m, adjustable up to 16m |
Request timeout | Upstream request timeout. Uses the ingress-controller default unless you select an override |
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.
TLS is provided automatically for generated apps.remotegpu.ai hosts.
Supported ingress profile
The standard ingress flow is:
text
Deployment
-> Service
-> Ingress
-> public HTTP route| Area | Supported behavior |
|---|---|
| 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 | Use traefik |
| Path routing | Standard HTTP path routing with pathType |
| TLS | Managed apps.remotegpu.ai hosts use the platform wildcard certificate |
Advanced ingress options
The console supports request body size and request timeout settings. The same settings can also be managed with kubectl by using the supported Traefik annotations and resources below.
For namespace-local Traefik Middleware references from an Ingress, prefix the middleware name with the current Kubernetes namespace and add the @kubernetescrd suffix. For example, in namespace rgpu-owner-default-12345678, a middleware named demo-body-limit becomes rgpu-owner-default-12345678-demo-body-limit@kubernetescrd.
For request body size limits, RemoteGPU accepts these buffering.maxRequestBodyBytes values:
1048576(1m)2097152(2m)4194304(4m)8388608(8m)16777216(16m)
Without a buffering middleware, the managed ingress profile defaults to 8m.
For request timeouts, RemoteGPU accepts these platform shared Traefik references:
kube-system-public-timeout-60s@kubernetescrdkube-system-public-timeout-120s@kubernetescrdkube-system-public-timeout-300s@kubernetescrdkube-system-public-timeout-600s@kubernetescrd
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.
The console workflow still offers body-size and timeout fields. RemoteGPU translates those selections into the allowlisted Traefik middleware and shared transport references above.
Limits
| Pattern | Status |
|---|---|
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 nginx.ingress.kubernetes.io/* annotations | Not supported |
| Unsupported Traefik annotations or CRDs | Not supported outside the documented allowlist |
| 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 | Use the console request body size setting, or apply one of the supported Traefik buffering values with kubectl |
| Long requests time out | Use the console request timeout setting, or apply one of the supported shared timeout references with kubectl |
Read next
- Read Services to create the internal backend.
- Read Deployments to run the workload first.
