Updated on 2024-06-17 GMT+08:00

Ingresses

An Ingress uses load balancers as the entry for external traffic. Compared with load balancers at Layer 4, load balancers at Layer 7 support URI configurations and distribute traffic to the corresponding Services based on the corresponding URIs. You can customize forwarding rules based on domain names and URLs to implement fine-grained distribution of access traffic. The access address is in the format of <IP address of public network load balancer>:<access port><defined URI>, for example, 10.117.117.117:80/helloworld.

Prerequisites

A workload is available. If no workload is available, create one by following the procedure described in Workloads.

Creating an Ingress

  1. Log in to the UCS console. In the navigation pane on the left, choose Fleets.
  2. On the Fleets tab, click the name of the federation-enabled fleet to access its details page.
  3. In the navigation pane on the left, choose Services & Ingresses. Then, click the Ingresses tab.
  4. Select the namespace that the Ingress will belong to and click Create Ingress in the upper right corner. For details about how to create a namespace, see Creating a Namespace.

    Figure 1 Selecting a namespace

  5. Configure Ingress parameters.

    Figure 2 Creating a route
    • Ingress Name: name of the Ingress to be created.
    • Namespace: namespace that the Ingress belongs to.
    • Interconnect with Nginx: There are ELB Ingress Controller and Nginx Ingress Controller. Both of them are supported in UCS. ELB Ingress Controller forwards traffic through ELB. Nginx Ingress Controller uses the templates and images maintained by the Kubernetes community to forward traffic through the Nginx component.
    • Listener: Select an external protocol. HTTP and HTTPS are supported. If you select HTTPS, select an IngressTLS server certificate. If no desired certificate is available, click Create IngressTLS Secret to create an IngressTLS secret. For details, see Secrets.
      • SNI: Server Name Indication (SNI) is an extended protocol of TLS. It allows multiple TLS-based access domain names to be provided for external systems using the same IP address and port number. Different domain names can use different security certificates.
    • Forwarding Policy: When the access address of a request matches the forwarding policy (a forwarding policy consists of a domain name and URL, for example, 10.117.117.117:80/helloworld), the request is forwarded to the corresponding target Service for processing. You can add multiple forwarding policies.
      • Domain Name: (Optional) actual domain name. Ensure that the domain name has been registered and licensed. Once a forwarding policy is configured with a domain name specified, you must use the domain name for access.
      • URL: access path to be registered, for example, /healthz. The access path must be the same as the URL exposed by the backend application. Otherwise, a 404 error will be returned.
      • Backend Service: Select a Service name. You need to create the NodePort Service first. For details, see NodePort.
      • Backend Service Port: After you select the backend Service, the corresponding container port is automatically filled in.
    • Cluster: Select the cluster where the Ingress is to be deployed.
      Figure 3 Adding a cluster
      • CCE cluster:
        • Exposed Port: port opened on the load balancer, which can be specified randomly.
        • Load Balancer: Only load balancers in the VPC where the cluster resides are supported. If no load balancer is available, click Create Load Balancer. After the load balancer is created, click the refresh button.

          When creating an Nginx Ingress, you do not need to manually select a load balancer because a load balancer has been associated during add-on installation.

      • Other clouds
        Figure 4 Adding a cluster
        • Ingress Class: You can select an existing Ingress class or manually enter an Ingress class name.
        • Annotation: Enter an annotation in a key-value pair based on your service and vendor requirements.
      • To create an internal load balancer, add the annotation based on the cloud service provider of your cluster. For details, see Internal load balancer.

  6. Click OK. After the Ingress is created, you can view it in the list on the Ingresses tab.
  7. Obtain the access address.

    1. In the navigation pane on the left, choose Services & Ingresses. Then, click the Ingresses tab.
    2. Click the name of the created Ingress. On the Ingress Details page displayed, view the load balancer and listener port configurations. You can access a backend pod using the EIP of the load balancer, listener port, and URL, for example, 10.117.117.117:8088/helloworld.

Related Operations

You can also perform operations described in Table 1.
Table 1 Related operations

Operation

Description

Creating an Ingress from a YAML file

Click Create from YAML in the upper right corner to create an Ingress from an existing YAML file.

Viewing details

  1. Select the namespace that the Ingress belongs to.
  2. (Optional) Search for an Ingress by its name.
  3. Click the Ingress name to view its details, including the basic information and cluster deployment information.
  4. On the Ingress Details page, click View YAML in the Cluster area to view or download YAML files of Ingress instances deployed in each cluster.

Editing a YAML file

Click Edit YAML in the row where the target Ingress resides to view and edit the YAML file of the Ingress.

Updating an Ingress

  1. Choose More > Update in the row where the target Ingress resides.
  2. Modify the information by referring to 5.
  3. Click OK to submit the modified information.

Deleting an ingress

Choose More > Delete in the row where the target Ingress resides. Then, click Yes.

Deleting Ingresses in batches

  1. Select the Ingresses to be deleted.
  2. Click Delete in the upper left corner.
  3. Click Yes.