Guides Overview

There are several guides available. The complete list can be seen below. A reasonable introduction to Service Mesh Hub can be obtained by following the guides in the order that they appear here, starting from the top and going down.

Pre-requisites

There are three pre-requisites to following these guides:

  1. Install kubectl
  2. Install meshctl
  3. Have multiple Kubernetes clusters ready to use, accessible in different kubeconfig contexts. If you don't have access to multiple Kubernetes clusters, see the Getting Started Guide to use Kubernetes in Docker (Kind) to spin up two clusters in containers.

Assumptions made in the guides

We will assume in this guide that we have access to two clusters and the following two contexts available in our kubeconfig file.

Your actual context names will likely be different.

We assume you've installed Service Mesh Hub into the cluster represented by the context management-plane-context.

Two registered clusters

We also assume you've registered both of those clusters with Service Mesh Hub:

meshctl cluster register \
  --remote-cluster-name management-plane \
  --remote-context management-plane-context
meshctl cluster register \
  --remote-cluster-name new-remote-cluster \
  --remote-context remote-cluster-context

At this point we have two clusters, management-plane-context and remote-cluster-context both registered with Service Mesh Hub which happens to be installed on the management-plane-context cluster.

Next steps

At this point we have two clusters registered with Service Mesh Hub. You should now Install Istio and then install the Bookinfo demo (see below).

Bookinfo deployed on two clusters

For some parts of the guide, you'll want to have the Bookinfo demo deployed to two clusters.

You'll want to first have Istio installed for multi-cluster before installing the Bookinfo demo.

The core components, including reviews-v1 and reviews-v2, are deployed to management-plane-cluster, while reviews-v3 is deployed on the remote-cluster-context cluster.

Deploy part of the bookinfo application to the management-plane-context cluster:

Be sure to switch the kubeconfig context to the management-plane-context

kubectl config use-context management-plane-context # your management-plane context name may be different
kubectl label namespace default istio-injection=enabled
​
# we deploy everything except reviews-v3 to the management-plane cluster
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/platform/kube/bookinfo.yaml -l 'app,version notin (v3)'
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/platform/kube/bookinfo.yaml -l 'account'

Now deploy only reviews-v3 to your remote-cluster-context cluster:

Be sure to switch the kubeconfig context to the remote-cluster-context

kubectl config use-context remote-cluster-context # your remote cluster context name may be different

kubectl label namespace default istio-injection=enabled
​
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/platform/kube/bookinfo.yaml -l 'app,version in (v3)' 
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/platform/kube/bookinfo.yaml -l 'service=reviews' 
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/platform/kube/bookinfo.yaml -l 'account=reviews' 
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/platform/kube/bookinfo.yaml -l 'app=ratings' 
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/platform/kube/bookinfo.yaml -l 'account=ratings' 

Now you have Bookinfo demo set up for the rest of the guides. From here you can federate your two clusters, or start configuring multi-cluster access and traffic policy.