1. Release Notes
    1. Release Notes - 2.0.2Latest
    1. Release Notes - 2.0.1
    1. Release Notes - 2.0.0
  1. Introduction
    1. Introduction
    1. Features
    1. Architecture
    1. Advantages
    1. Glossary
  1. Installation
    1. Intruction
      1. Intro
      2. Port Requirements
    1. Install on Linux
      1. All-in-One Installation
      2. Multi-Node Installation
      3. Installing HA Master and Etcd Cluster
      4. Storage Configuration Instruction
    1. Install on Kubernetes
      1. Prerequisites
      2. Online Installation
      3. Offline Installation
    1. Related Tools
      1. Integrating Harbor Registry
    1. Cluster Operation
      1. Adding New Nodes
      2. High Risk Operation
      3. Uninstalling KubeSphere
  1. Quick Start
    1. Getting Started with Multitenancy
    1. Exposing your APP using Ingress
    1. Deploying a MySQL Application
    1. Deploying a Wordpress Website
    1. Job to compute π to 2000 places
    1. Deploying Grafana using APP Template
    1. Creating Horizontal Pod Autoscaler
    1. S2i: Publish your app without Dockerfile
    1. Canary Release of Microservice APP
    1. CI/CD based on Spring Boot Project
    1. Building a Pipeline in a Graphical Panel
    1. CI/CD based on GitLab and Harbor
    1. Ingress-Nginx for Grayscale Release
  1. Cluster Admin Guide
    1. Multi-tenant Management
      1. Overview of Multi-tenant Management
      2. Overview of Role Management
    1. Platform Management
      1. Account Management
      2. Platform Roles Management
    1. Infrastructure
      1. Service Components
      2. Nodes
      3. Storage Classes
    1. Monitoring Center
      1. Physical Resources
      2. Application Resources
    1. Application Repository
    1. Jenkins System Settings
  1. User Guide
    1. Application Template
    1. Workloads
      1. Deployments
      2. StatefulSets
      3. DaemonSets
      4. Jobs
      5. CronJobs
    1. Storage
      1. Volumes
    1. Network & Services
      1. Services
      2. Routes
    1. Configuration Center
      1. Secret
      2. ConfigMap
      3. Image Registry
    1. Project Settings
      1. Basic Information
      2. Member Roles
      3. Project Members
      4. Internet Access
    1. DevOps Project
      1. DevOps Project Management
      2. DevOps Project Management
      3. DevOps Project Management
      4. DevOps Project Management
      5. DevOps Project Management
  1. Development Guide
    1. Preparing the Development Environment
    1. Development Workflow
  1. API Documentation
    1. API Guide
    1. How to invoke KubeSphere API
KubeSphere®️ 2020 All Rights Reserved.


Route can be considered as ingress in Kubernetes, an Route can be configured to give services externally-reachable URLs, load balance traffic, terminate SSL, and offer name based virtual hosting. Route exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. Traffic routing is controlled by rules defined on the Ingress resource.

Ingress traffic flow


  • Make sure you have created a service, the traffic will be forwarded to the backend service.
  • If you are going to create a route with https protocol, make sure you have created a secret in advance.

Create a Route

Sign in with project-regular, enter into one project (e.g. demo-namespace), then select Network & Services → Routes.

Create a Route

Step 1: Fill in the Basic Information

1.1. Click Create Route button, then fill in the basic information in the pop-up window. There are two ways to create a Route, i.e. fill in the creation table and edit mode. The following mainly introduces each step within creation table. If you prefer edit mode, you can click on the edit mode button, it supports the yaml and json formats. Edit mode makes it easy for users who are used to command operations.

Edit mode

1.2. On the basic information page, enter the name of the Route, you can also fill in the description as required.

  • Name: A concise and clear name for this Route, which is convenient for users to browse and search.
  • Alias: Helps you better distinguish resources and supports Chinese.
  • Description: A brief introduction to Route.

Click Next when you're done.

Basic information

Step 2: Route Rules

Click Add Route Rule, then fill in the route rules refer to the hints below:

  • HostName: Name-based virtual hosts support routing HTTP or HTTPS traffic to multiple host names at the same IP address, for example, demo.kubesphere.io.
  • Protocol

    • http: http requests to the Route matching the hostname and path of the rule will be sent to the listed backend.
    • https: You can secure an Route by specifying a secret that contains a TLS private key and certificate, then you can choose https protocol.
  • Paths: Each of path has an associated backend defined with a serviceName and servicePort. Both the host and path must match the content of an incoming request before the loadbalancer will direct traffic to the referenced service.

Click Save then choose Next when you're done.

Route Rules

Step 3: Add Annotations

Ingress frequently uses annotations to configure some options depending on the Ingress controller, an example of which is the rewrite-target annotation. Different Ingress controller support different annotations.

For example, add the following annotation to indicate that the /path is redirected to the root path/ where can be recognized by the back-end service. The purpose of the redirection annotation is to route the application to the backend workload in the root path, to prevent a page from returning a 404 error due to misconfiguration of the access path.

nginx.ingress.kubernetes.io/rewrite-target: /

Then click Next when you're done.

Add Annotations

Step 4: Label Settings

The labels are one or more key-value pairs that are associated with a resource, such as a Pod. We usually identify, organize, or find resource objects through labels, e.g. label selector.

Add Label

Click on the Create button to complete creation.

Create a route

Access the Route

The value defined by the hostname field (e.g. demo.kubesphere.io) is the entry for this route, and when the user accesses demo.kubesphere.io, it's the route that is actually accessed. In this way, KubeSphere can use Route rules to forward your request in the next step.

After the route is created, ensure that the Hostname can be resolved to the IP address of the external network access portal, then the hostname can be accessed. In a private environment, you can use the routes by adding the record in /etc/hosts file in local.

See an example as following table:

Hostname Paths Access Method Port/EIP Node IP
demo.kubesphere.io / NodePort 32586,31920,,
demo2.kubesphere.io / LoadBalancer,,

In the above table, it created two kind of routes using the access NodePort and LoadBalancer methods respectively.


For the NodePort, if it‘s in a private environment, we can directly add a record to the hosts file to resolve the hostname to the corresponding IP. For example, for demo.kubesphere.io, we add the following record in /etc/hosts: demo.kubesphere.io

Note: The IP address can also use the EIP if you need to expose the route outside.

Next, you need to set up a Gateway under Internet Access. Follow with the steps as the screenshot.

Click Save to generate two kind of node port, i.e. http and https.

You need to ensure that the network between the client and the node( is interlinked, then you can access the route via http://demo.kubesphere.io:31921 (It uses the port 31921 with http protocol as an example).


If the Internet access is set to LoadBalancer, for demo2.kubesphere.io, you can also use nip.io as the domain name resolution of the route. Nip.io is a free domain resolution service that can resolve the IP corresponding to the hostname in the following format, which can be used as a route resolution service, eliminating to configure the /etc/hosts file in local.

Configuration Format maps to  
app. maps to
customer1.app. maps to
customer2.app. maps to
otherapp. maps to

For example, the EIP of the cluster is Thus the Hostname field is filled in as demo2.kubesphere. in the rule, and the others keep the original settings.

Once created, use http://demo2.kubesphere. to access the corresponding service.