DEV Community

Franck Pachot for AWS Heroes

Posted on

Distributed PostgreSQL with YugabyteDB Multi-Region Kubernetes / Istio / Amazon EKS

YugabyteDB, an open-source PostgreSQL-compatible distributed SQL database, can be deployed on Kubernetes. When deploying across multiple regions, a service mesh helps manage the traffic, and Istio is a great solution for Kubernetes. Here's a guide on fully deploying the solution, from provisioning an Amazon AKS Kubernetes cluster on AWS to running YugabyteDB in a multi-region setup.

I'm following instructions from Vishnu Hari Dadhich:
MULTI-REGION YUGABYTEDB DEPLOYMENT ON AWS EKS WITH ISTIO

Multi-region YugabyteDB deployment on AWS EKS with Istio – DevOps: Culture and Process

This blog post discusses the importance of deploying applications across multiple regions and clusters in today’s distributed cloud landscape. It focuses on setting up a multi-region, multi-c…

favicon dvops.wordpress.com

Notes:

  • I have AWS CLI, Kubectl, Help, and EKSCTL installed (see here)
  • I did not use Persistent Volumes but ephemeral storage (this is a lab), by adding --set storage.ephemeral=true to the helm upgrade --install commands.

Here are the first commands, all details are in Vishnu's article.

-- get the repo
git clone https://github.com/vishnuhd/yugabyte-multiregion-aws-eks-istio.git
cd yugabyte-multiregion-aws-eks-istio

-- deploy EKS clusters
eksctl create cluster -f    mumbai/cluster-config.yaml &
eksctl create cluster -f singapore/cluster-config.yaml &
eksctl create cluster -f hyderabad/cluster-config.yaml &
wait
-- update Kubernetes configuration
aws eks update-kubeconfig --region ap-south-1     --name yb-mumbai    --alias Mumbai &
aws eks update-kubeconfig --region ap-southeast-1 --name yb-singapore --alias singapore &
aws eks update-kubeconfig --region ap-south-2     --name yb-hyderabad --alias hyderabad &
wait
-- upgrade Kubernetes
eksctl upgrade cluster -f mumbai/cluster-config.yaml --approve &
eksctl upgrade cluster -f singapore/cluster-config.yaml --approve &
eksctl upgrade cluster -f hyderabad/cluster-config.yaml --approve &
wait
Enter fullscreen mode Exit fullscreen mode

You can continue with Vishnu's instructions, or follow his demo at the YugabyteDB Community Open Hours:

When you are done, don't forget to terminate the cluster. Here was the cost when I tested it:
Image description

Top comments (0)