Skip to content

Description

Using GLB and ASM to implement multi-cluster traffic managment across different Cloud Providers. In each individual k8s cluster we leverage weight distrubution of Istio to reduce inter-zone traffic & cost.

Deployment

# Clone repo
git clone https://github.com/cc4i/awesome-gke.git
cd awesome-gke
cd asset/tod/bin && ./gke.sh
./eks.sh


# !!!Set Kube Context for cluster in GCP & AWS, and install ASM for each of them.!!!

# GCP: 
#   gcloud container clusters get-credentials gke-istio --region asia-southeast1
#   Rename context -> cluster_name
#   Install ASM for GKE:  https://cloud.google.com/service-mesh/docs/unified-install/install-anthos-service-mesh#install_mesh_ca

# AWS:
#   aws eks update-kubeconfig --name eks-sculpture
#   Rename context -> cluster_name
#   Install ASM for EKS: https://cloud.google.com/service-mesh/docs/unified-install/install-anthos-service-mesh#install_istio_ca


#  Build application 
skaffold build 
tag=`skaffold build --dry-run --output='{{json .}}' --quiet |jq '.builds[].tag' -r`


# Switch Kube Conetxt & deploy to GKE
skaffold deploy --images ${tag}

# Switch Kube Conetxt & deploy to EKS
skaffold deploy --images ${tag}

Usage

Access UI from either cluster and input initial URI, such as "gcp::192.168.0.2,aws::192.168.0.4", in order to inital Sankey.


# Access by http://${endpoint}/tracker-ui
open http://${endpoint}/tracker-ui

Networking

sample networking

Notes