Currently, it’s not possible to deploy global and zone control plane in the same Kubernetes cluster, therefore we need a new Kubernetes cluster.
You can skip this step if you already have a Kubernetes cluster running.
It can be a cluster running locally or in a public cloud like AWS EKS, GCP GKE, etc.
minikube start -p mesh-global
If you are using minikube for local testing, you can take advantage of the built-in minikube tunnel command. This command allows load balancer addresses to be provisioned using localhost.
Using nohup
will allow the tunnel to continue running should your current terminal session end.
nohup minikube tunnel -p mesh-global &
helm install --kube-context=mesh-global --create-namespace --namespace kong-mesh-system \
--set kuma.controlPlane.mode=global \
--set kuma.controlPlane.defaults.skipMeshCreation=true \
kong-mesh kong-mesh/kong-mesh
We skip default mesh creation as we will bring mesh from zone control plane in the next steps.
Find and save the external IP and port of the kong-mesh-global-zone-sync
service in the kong-mesh-system
namespace:
export KDS_IP=$(kubectl --context=mesh-global get svc --namespace kong-mesh-system kong-mesh-global-zone-sync -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
If you are using minikube, you should use host.minikube.internal
to ensure networking works correctly.
sh
export KDS_IP=host.minikube.internal