Skip to content

Latest commit

 

History

History
150 lines (98 loc) · 6.6 KB

File metadata and controls

150 lines (98 loc) · 6.6 KB

Prerequisites

You will need each of the following in order to complete the workshop:

  1. Docker (installed locally)
  2. Kubernetes (installed locally or have remote access to a cluster)
  3. Meshery (installed locally)

Install Docker and Create a Kubernetes Cluster

You will access to a Kubernetes cluster in this training. While any Kubernetes cluster should work, instructions for Docker Desktop and Minikube are included in these labs as the example Kubernetes platforms. Alternatively, you may choose to use any of the other supported Kubernetes platform.

Setup Docker Desktop (MacOS and Windows)

  1. Download and install Docker Desktop.

    1. Ensure 4GB is allocated to your Docker Desktop VM in Docker Desktop preferences (see screenshot).
  2. Create Kubernetes cluster. Enable Kubernetes in Docker Desktop preferences (see screenshot).

  3. Please open ~/.kube/config and check the docker-desktop cluster under clusters section and ensure you see something like the image below:

    Note: If you see https://localhost:6443 as the value for server, please get the IP address of your host and replace localhost with the the IP address. The end result should look like this https://1.2.3.4:6443.

  • Mac and Windows users may continue this workshop with Kubernetes on Docker Desktop.

Or... Setup Minikube (MacOS, Windows, Linux)

  1. Install minikube.
  2. Create Kubernetes cluster: minikube start.

Check Cluster Status

Check the status of the nodes. Ensure Ready state.

[node1 ~]$ kubectl get nodes
NAME      STATUS    ROLES     AGE       VERSION
node1     Ready     master    1h        v1.15.2

Check the status of the pods next:

[node1 ~]$ kubectl get pods --all-namespaces
NAMESPACE     NAME                            READY     STATUS    RESTARTS   AGE
kube-system   etcd-node1                      1/1       Running   0          1h
kube-system   kube-apiserver-node1            1/1       Running   0          1h
kube-system   kube-controller-manager-node1   1/1       Running   0          1h
kube-system   kube-dns-545bc4bfd4-nnbwn       3/3       Running   0          1h
kube-system   kube-proxy-pxq27                1/1       Running   0          1h
kube-system   kube-scheduler-node1            1/1       Running   0          1h

If all pods are in a Running state, you have an operational Kubernetes cluster. Please continue to download and run Meshery.

Download mesheryctl

Meshery Architecture

In this workshop, Meshery will run "off-cluster", which is to say it will be running outside of the Kubernetes cluster. You will be running Meshery in your local Docker instance.

Meshery Architecture

Install Meshery on your local machine (running Docker) by executing the following:

Install on MacOS with Homebrew

brew install layer5io/mesheryctl
mesheryctl system start

Or... Install on MacOS and Linux with bash script:

curl -L https://git.io/meshery | bash -

Or.... Install on Windows with mesheryctl binary

  1. Use Scoop.

or

  1. Download and unzip mesheryctl from the Meshery releases page.
  2. Add mesheryctl to your PATH for ease of use. Then, execute:
./mesheryctl system start

Upon starting Meshery successfully, instructions to access Meshery will be printed on the sceen.

Run Meshery

Meshery will automatically launch in your browser.

Sign into Meshery (see screenshot) using either Twitter, Linkedin, GitHub or Google authentication.

Meshery attempts to automatically connect with your Kubernetes cluster by loading the kubeconfig found in your $HOME/.kube folder and connecting existing service mesh adapters (see screenshot).

If your kubeconfig is in a different location (i.e. if you are not using Docker Desktop), point Meshery to your kubeconfig location by navigating to the Settings page. Navigate to Settings by clicking the gear icon on the right top of the screen (see screenshot).

This will take the user to the Settings page and here you can load up your new config file and select the context to use (see screenshot).

If you are using minikube: To configure Meshery to use minikube:

  1. Login to Meshery. Under your user profile, click Get Token.
  2. Use mesheryctl to configure Meshery to use minikube. Execute:
mesheryctl system config minikube -t ~/Downloads/auth.json

In a similar fashion, if you don't see the Istio adapter loaded, you should be able to switch to the Service Meshes tab in the Settings page and connect to existing adapters from the drop down (see screenshot).

Once an adapter is connected, you will also see it added to the nav menu on the left (see screenshot).

In the labs, you will use a combination of Meshery's UI and your terminal. We suggest splitting the view on your display between your terminal and your web browser, so that you don't have to switch between apps frequently.

Install Istio CLI

Bash Install istioctl CLI on your local system by executing:

curl -L https://istio.io/downloadIstio | sh -
export PATH=$PWD/bin:$PATH

Brew If you are on MacOS, you can use homebrew to install Istio cli:

brew install istioctl

To verify if the cli was successfully installed:

istioctl version

Continue to Lab 1: Deploy Istio