Skip to content

Latest commit

 

History

History
149 lines (97 loc) · 6.64 KB

README.md

File metadata and controls

149 lines (97 loc) · 6.64 KB

Prerequisites

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

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

Create a Kubernetes Cluster

You will need 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 and Istio adapter for Meshery will be running in-cluster in the meshery namespace.

Meshery Architecture

Install on MacOS and Linux with bash script:

The below command installs Meshery and Istio adapter for Meshery in meshery namespace in your cluster.

curl -L https://meshery.io/install | ADAPTERS=istio PLATFORM=kubernetes 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.

Continue to Lab 1: Deploy Istio



Optional, manual installation steps are provided for reference below. No need to execute these if you have performed the steps above.


Download istioctl

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