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
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 thehelm 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
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:
Top comments (0)