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:
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.
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 Set. In the Settings tab, the Enable App Gateway Ingress Controller setting now contains the true in the Value column.
NONPROD Infrastructure page with Enable App Gateway Ingress Controller set to true
Add Kubernetes Ingress
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 DevOps -> Containers -> AKS / Native.
Click the K8S Ingress tab.
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.
Add Rule option on the Add Kubernetes Ingress page
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.
Add Ingress Rule pane
On the Add Kubernetes Ingress page, click Add to add Ingress. On the K8S Ingress tab, the VIEWWEBSITE Ingress that you defined, with an Ingress Class of azure-application-gateway, displays.
K8S Ingress tab displaying VIEWWEBSITE Ingress
Check your work
Before you proceed to the final step and run your application, ensure that you: