First, we need a number of Kubernetes clusters to be setup already. In this case we'll create a few in Digital Ocean using the doctl tool but you could use any K8S solution available:
Next, get your NGS credentials with leafnodes enabled. For this follow these instructions and choose the Developer plan which is free and will allow you to create leafnode connections for a couple of clusters. Once you got the credentials, upload them as a secret to your K8S clusters:
for ctx indo-ams3-nats-k8s-ams3do-sfo2-nats-k8s-sfo2; dokubectl--context $ctx createsecretgenericngs-creds--from-file $HOME/.nkeys/creds/synadia/NGS/NGS.credsdone
for ctx indo-ams3-nats-k8s-ams3do-sfo2-nats-k8s-sfo2; dohelm--kube-context $ctx installnatsnats/nats-fnats.yamldone
To test the multi-region connectivity by using the nats-box container that got deployed in each cluster:
kubectl --context do-ams3-nats-k8s-ams3 exec -it nats-box -- nats sub -s nats hello
Listening on [hello]
while true; do
kubectl --context do-sfo2-nats-k8s-sfo2 exec -it nats-box -- nats pub -s nats hello 'Hello World!'
done
Results from the subscribe session:
[#1] Received on [hello]: 'Hello World!'
[#2] Received on [hello]: 'Hello World!'
[#3] Received on [hello]: 'Hello World!'
[#4] Received on [hello]: 'Hello World!'
[#5] Received on [hello]: 'Hello World!'
[#6] Received on [hello]: 'Hello World!'
[#7] Received on [hello]: 'Hello World!'
[#8] Received on [hello]: 'Hello World!'
[#9] Received on [hello]: 'Hello World!'