Skip to content

Commit

Permalink
multi cluster multi cloud setup
Browse files Browse the repository at this point in the history
Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>
  • Loading branch information
joshuafernandes committed Dec 18, 2024
1 parent 396bc61 commit 40402c0
Showing 1 changed file with 86 additions and 0 deletions.
86 changes: 86 additions & 0 deletions docs/private-networks/tutorials/kubernetes/multi-cluster.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
title: Deploy Besu across multiple Kubernetes clusters across multiple cloud providers
description: Deploy Besu across multiple Kubernetes clusters across multiple cloud providers
sidebar_position: 7
tags:
- private networks
---

# Deploy Besu across multiple Kubernetes clusters across multiple cloud providers

The following tutorial is just one of many ways to connect nodes in one K8S cluster to nodes in another K8S
cluster across multiple cloud provider - in this case [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/)
and [Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-au/products/kubernetes-service)

This tutorial walks you through using AWS as the main cluster and adding an extra node in Azure to the existing pool

## Overview

### Steps

#### 1. Create an AWC VPC

1. Use a CIDR block that doesn't overlap with that of Azure eg `10.0.0.0/16`
2. Create the EKS cluster as normal and use the default Kubernetes service range `172.20.0.0/16`

#### 2. Create an Azure Virtual Network

1. Use a CIDR block that doesn't overlap with that of AWS eg `10.1.0.0/16`
2. It is also recommended to create a subnet for the Gateway and use a CIDR of `/24` eg `10.1.1.0/24`
3. Create the AKS cluster as normal and use the different Kubernetes service range
`10.2.0.0/16` (the default `10.0.0.0/16` overlaps with the AWS VPC CIDR block)

#### 3. Connect the AWS VPC and Azure VNet with a site to site VPN

##### 3.1 On the Azure side create a Virtual Network Gateway

In the AZure VNet, create a Virtual Network Gateway with the following settings

| Setting | Value |
|----------------------|-------------|
| SKU | VpnGw2AZ (default) |
| Gateway Type | VPN |
| VPN Type | Route-based |
| Virtual Network | Use the network in step 2.1 |
| Gateway subnet | Use the subnet from step 2.2 |
| Public IP Address | Create new |
| Enable active-active mode | Disabled |
| Configure BGP | Disabled |

The other setttings can remain as defaults or set to suit your requirements. Once this is complete
please note down the IP address that was created for the Virtual Network Gateway

##### 3.2 On the AWS side create a Customer Gateway

This Customer Gateway points to the Azure Virtual Network Gateay from step 3.1

| Setting | Value |
|----------------------|-------------|
| Routing | Static |
| IP Address | Use the IP of the Virtual Network Gateway in step 3.1 |

The other setttings can remain as defaults or set to suit your requirements

##### 3.2 On the AWS side create a Virtual Private Gateway

Create an AWS Virtual Private Gateway and specify the name.

| Setting | Value |
|----------------------|-------------|
| ASN | Amazon Default ASN |

##### 3.3 On the AWS side attach the Virtual Private Gateway to the VPC

Select the Virtual Private Gateway and then select Actions and `Attach to VPC` and select
the VPC in step 1

##### 3.4 On the AWS side create the Site to Site VPN Connection


Create an AWS Virtual Private Gateway and specify the name.

| Setting | Value |
|----------------------|-------------|
| ASN | Amazon Default ASN |


0 comments on commit 40402c0

Please sign in to comment.