Skip to content

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 ClusterIP service 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:

  1. Open Kubernetes / Ingresses
  2. Select a namespace
  3. Click Create ingress
  4. Choose the target service
  5. Choose the backend port
  6. Enter the ingress details
Console fieldWhat it means
Ingress nameKubernetes ingress name in the namespace
Host prefixThe left side of the enforced hostname pattern
PathHTTP path for the backend rule
Max request body sizeIngress request limit. Default 8m, adjustable up to 16m
Request timeoutUpstream request timeout. Uses the ingress-controller default unless you select an override
ServiceExisting service that should receive traffic
PortService 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
AreaSupported behavior
API versionnetworking.k8s.io/v1 Ingress
Backend typeService-backed HTTP rules
Namespace boundaryThe ingress must point to services in the same namespace
HostnamesHosts must match <prefix>--<namespace-token>.apps.remotegpu.ai for the target namespace
Ingress classUse traefik
Path routingStandard HTTP path routing with pathType
TLSManaged 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@kubernetescrd
  • kube-system-public-timeout-120s@kubernetescrd
  • kube-system-public-timeout-300s@kubernetescrd
  • kube-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

PatternStatus
NodePort or externalIPs service exposureUse ingress-backed HTTP routing instead
Hosts outside the namespace-scoped patternRejected
defaultBackendNot supported
Non-service ingress backendsNot supported
Per-ingress cert-manager annotations or custom TLS secretsNot supported for managed apps.remotegpu.ai hosts
Legacy nginx.ingress.kubernetes.io/* annotationsNot supported
Unsupported Traefik annotations or CRDsNot supported outside the documented allowlist
Custom-domain onboarding through the Kubernetes console flowNot supported

How ingress shows up in the console

The console reads live ingress resources from your namespace.

ActionResult
Create ingress with kubectlIt appears in the console
Create ingress in the consoleIt appears in kubectl
Remove the target service or service portThe console shows an error state for the ingress

Troubleshooting

SymptomWhat to check
Ingress creation is rejected because of the hostUse the namespace-scoped host pattern shown in the error response: <prefix>--<namespace-token>.apps.remotegpu.ai
The generated URL returns no application responseConfirm the ingress backend points to an existing ClusterIP service and that the service has ready endpoints
HTTPS configuration is rejectedDo not add spec.tls or cert-manager annotations for managed apps.remotegpu.ai hosts
Large requests failUse the console request body size setting, or apply one of the supported Traefik buffering values with kubectl
Long requests time outUse the console request timeout setting, or apply one of the supported shared timeout references with kubectl

RemoteGPU customer documentation