DEV Community

Talha Munir 🇵🇸
Talha Munir 🇵🇸

Posted on

Cluster Architecture

Previously we discussed the making of clusters in the big animal application.
In this article, we will be discussing the cluster architecture.
The Big Animal clusters can be exposed to client applications in two ways:

  • Public-The cluster is easily available on the internet
  • Private-The IP address is private to the VNet or VPC service that is hosting your BigAnimal services. By default, it isn't routable from other networks.

Basic Architecture:

The application initially deploys the VNET in Azure, an amazon virtual private cloud in AWS, or a google VPC in google cloud which are then used to host clusters and their supporting management services.

Load Balancing:

The Big Animal uses the following resources to make routing decisions and distributing requests.

Standard Load Balancer in Azure:

When we create a cluster is created with public network access, a load balancer is created. The load balancer is configured with a public IP address. Once an IP address is assigned it is not changed until we change the network configuration of our cluster. The load balancer always routes to the leader of your cluster.

Amazon network load balancer in AWS:

BigAnimal also creates a new load balancer for each cluster and tags it with the cluster-ID using following format/
service.k8s.aws/stack: default/<cluster_ID>

Since the load balancer IP address in AWS is dynamic, make sure that your application uses the correct DNS name to access the network load balancer of a particular cluster. In your application's AWS account:

  1. Select the load balancers service.
  2. Search for the load balancer with the cluster ID you want to access. 3- Use the DNS name to access the cluster.

Google Load balancer in google cloud:

Big Animal creates a new load balancer using the premium network service. tier for each cluster and tags it using a unique identifier.
The corresponding front end forwarding rule uses the same unique identifier and includes the cluster-ID in the following format.
{"kubernetes.io/service-name":"default/<cluster_ID>-<service_type>"}

Since the load balancer IP address used in google cloud is dynamic, make sure your application uses the correct DNS name to access the network load balancer of a particular cluster.

References:

  1. https://www.postgresql.org/docs/
  2. https://www.enterprisedb.com/docs/biganimal/latest/free_trial/quickstart/

Top comments (0)