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

NodePort

A NodePort Service is exposed on a node at a static port, allowing access from outside the cluster to the workloads on the node. A ClusterIP Service, to which the NodePort Service routes, is automatically created, and it transfers access requests to the backing containers. If a node in the cluster is bound to an EIP, you can also request <EIP>:<NodePort> to access the workloads from public networks.

Creating a Service

You can create a Service in either of the following ways:

During Workload Creation

The procedure of creating a Service is the same for different types of workloads, such as Deployments, StatefulSets, and DaemonSets.

  1. In the Service Settings step of Creating a Deployment, Creating a StatefulSet, or Creating a DaemonSet, click to configure the Service.

    • Name: name of the Service to be created.
    • Type: Select NodePort.
    • Affinity
      • Cluster-level: The IP addresses and access ports of all nodes in a cluster can be used to access the workloads associated with the Service. However, performance loss is introduced due to hops, and source IP addresses cannot be obtained.
      • Node-level: Only the IP address and access port of the node where the workload is located can be used to access the workload associated with the Service. No performance loss due to hops, and source IP addresses can be obtained.
    • Port
      • Protocol: Select TCP or UDP.
      • Service Port: Port mapped to the container port at the cluster-internal IP address. The application can be accessed at <cluster-internal IP address>:<access port>. The port number range is 1–65535.
      • Container Port: Port on which the workload listens, defined in the container image. For example, the Nginx application listens on port 80 (container port).
      • Node Port: Specify a port to which the container port will be mapped when the node private IP address is used for accessing the application. The port number range is 30000–32767. You are advised to select Auto.
        • Auto: The system automatically assigns a port number.
        • Custom: Specify a fixed node port. The port number range is 30000–32767. Ensure that the port is unique in a cluster.

  2. Click OK.
  3. Click Next: Set Scheduling and Differentiation to configure the scheduling and differentiated settings for the selected clusters. After completing the settings, click Create Workload.
  4. Obtain the access address.

    1. In the navigation pane on the left, choose Services & Ingresses. The Services tab is displayed by default.
    2. Click the name of the added Service to go to its details page and obtain the access address of the deployment cluster. If a node in the cluster is bound to an EIP, you can access the backend workload through the EIP and node port of the node where the workload is deployed.

After Workload Creation

  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. The Services tab is displayed by default.
  4. Select the namespace that the Service will belong to and click Create Service in the upper right corner. For details about how to create a namespace, see Creating a Namespace.
  5. Configure access parameters.

    Figure 1 Creating a Service

    • Name: Can be the same as the workload name.
    • Type: Select NodePort.
    • Affinity
      • Cluster-level: The IP addresses and access ports of all nodes in a cluster can be used to access the workloads associated with the Service. However, performance loss is introduced due to hops, and source IP addresses cannot be obtained.
      • Node-level: Only the IP address and access port of the node where the workload is located can be used to access the workload associated with the Service. No performance loss due to hops, and source IP addresses can be obtained.
    • Port
      • Protocol: Select TCP or UDP.
      • Service Port: Port mapped to the container port at the cluster-internal IP address. The application can be accessed at <cluster-internal IP address>:<access port>. The port number range is 1–65535.
      • Container Port: Port on which the workload listens, defined in the container image. For example, the Nginx application listens on port 80 (container port).
      • Node Port: Specify a port to which the container port will be mapped when the node private IP address is used for accessing the application. The port number range is 30000–32767. You are advised to select Auto.
        • Auto: The system automatically assigns a port number.
        • Custom: Specify a fixed node port. The port number range is 30000–32767. Ensure that the port is unique in a cluster.
    • Namespace: namespace to which the Service belongs.
    • Selector: Services are associated with workloads (labels) through selectors. Click Reference Workload Label to reference the labels of an existing workload.
      • Type: Select the desired workload type.
      • Workload: Select an existing workload. If your workload is not displayed in the list, click to refresh it.
      • Label: After a workload is selected, its labels are displayed and cannot be modified.
      Figure 2 Referencing a workload label

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

    1. In the navigation pane on the left, choose Services & Ingresses. The Services tab is displayed by default.
    2. Click the name of the added Service to go to its details page and obtain the access address of the deployment cluster. If a node in the cluster is bound to an EIP, you can access the backend workload through the EIP and node port of the node where the workload is deployed.

Related Operations

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

Operation

Description

Creating a Service from a YAML file

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

Viewing details

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

Editing a YAML file

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

Updating a Service

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

Deleting a Service

Choose More > Delete in the row where the target Service resides, and click Yes.

Deleting Services in batches

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