Step 5: Create a Load Balancer
Create a load balancer to access your application
Last updated
Create a load balancer to access your application
Last updated
© DuploCloud, Inc. All rights reserved. DuploCloud trademarks used herein are registered trademarks of DuploCloud and affiliates
Now that your DuploCloud Service is running, you have a mechanism to expose the containers and images in which your application resides. But because your containers are running inside a private network, you also need a load balancer to listen on the correct ports in order to access the application.
In this step, we add a Load Balancer Listener to complete this network configuration.
Estimated time to complete Step 5: 20 minutes.
Before creating your DuploCloud load balancer, ensure that:
All previous steps in this tutorial to create an Infrastructure and Plan, Tenant, Azure Agent Pool, and Service are complete.
AKS Kubernetes cluster is enabled.
dev01 is selected in the Tenant list box, at the top of the DuploCloud Portal.
Add a load balancer for your running service that listens on port 80:
In the DuploCloud Portal, navigate to Kubernetes -> Services.
On the Services page, select the nginx-service you started when creating a service in the previous step.
Click the Load Balancers tab.
Click the Configure Load Balancer link. The Add Load Balancer Listener pane displays.
Select K8S Node Port from the Select Type list box.
Enter 80 in the Container port field.
Enter 30008 in the External port field.
Type / (forward-slash) in the Health Check field to indicate that the cluster we want Kubernetes to perform Health Checks on is located at the root
level.
Select TCP from the Backend Protocol list box.
Click Add. The Load Balancer is created and started. After a few minutes, the LB Status card displays a status of Ready, indicating that the Load Balancer is ready for use.
When we created the Load Balancer Listener, we used the K8S Node Port type, which leverages the capabilities of the Kubernetes Ingress object.
Ingress is an entry point that front-ends multiple services in a cluster. It can be defined as a collection of routing rules that governs how external users access services running inside a Kubernetes cluster. One of the greatest benefits of Ingress is its ability to secure the network traffic to your application. With Ingress, you can define a TLS private key and certificates by leveraging Kubernetes Secrets, instead of directly defining TLS details in the Ingress resource.
To use Ingress, you first enable the Kubernetes Ingress Controller to open the application gateway for Ingress.
In the DuploCloud Portal, navigate to Administrator -> Infrastructure.
Select your Infrastructure from the Name column.
Click the Settings tab.
Click Add. The Infra-Set Custom Data pane displays.
In the Setting Name field, select Enable App Gateway Ingress Controller.
Click Enable.
Click Set. In the Settings tab, the Enable App Gateway Ingress Controller setting now contains the true in the Value column.
Now that your gateway is established and opened, you add Kubernetes Ingress to expose the backend HTTP routes outside the cluster to your service.
The Ingress object communicates with the Kubernetes NodePort that your Load Balancer Listener uses. Ingress objects are flexible constructs in Kubernetes, and their use here is an example of how DuploCloud leverages the power of Kubernetes constructs while abstracting away their native complexity. To manually create these components (and maintain them) in Kubernetes, takes a significant amount of developer time.
In the DuploCloud Portal, navigate to Kubernetes -> Ingress.
Click Add. The Add Kubernetes Ingress page displays.
In the Ingress Name field, type viewwebsite.
In the Ingress Controller list box, select azure-application-gateway.
In the Visibility list box, select Public.
Click Add Rule. The Add Ingress Rule pane displays.
In the Path field, type / (forward-slash).
In the Service Name field, select nginx-service:80.
Click Add Rule to add the rule and to close the Add Ingress Rule pane. You should be back to viewing the Add Kubernetes Ingress page.
On the Add Kubernetes Ingress page, click Add to add Ingress. On the Ingress page, the VIEWWEBSITE Ingress that you defined, with an Ingress Class of azure-application-gateway, displays.
Before you proceed to the final step and run your application, ensure that you:
Configured a Load Balancer Listener that uses K8S Node Port.
Enabled the App Gateway Ingress Controller.
Defined an Ingress and a rule for your DuploCloud Service to listen on port 80.