Community

Gloo Mesh uses a Kubernetes cluster to host the management plane (Gloo Mesh) while each service mesh can run on its own independent cluster. If you don't have access to multiple clusters, see the Getting Started Guide to get started with Kubernetes in Docker, or refer to our Using Kind setup guide to provision two clusters.

Gloo Mesh Enterprise is the paid version of Gloo Mesh, including the Gloo Mesh UI and multi-cluster role-based access control. The deployment model and installation process for Gloo Mesh Enterprise is different. You can find a guide for installation here.

Gloo Mesh Architecture

You can install Gloo Mesh onto its own cluster and register remote clusters, or you can co-locate Gloo Mesh onto a cluster with a service mesh. The former (giving Gloo Mesh its own unregistered cluster) is the preferred deployment pattern, but for getting started, exploring, or to save resources, you can use the co-located deployment approach.

Gloo Mesh Architecture

In this guide we will walk through the process of installing Gloo Mesh either through meshctl or by using Helm.

Assumptions for setup

We will assume in this and following guides 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.

To verify you're running the following commands in the correct context, run:

MGMT_CONTEXT=your_management_plane_context
REMOTE_CONTEXT=your_remote_context

kubectl config use-context $MGMT_CONTEXT

Install Gloo Mesh

Note that these contexts need not be different; you may install and manage a service mesh in the same cluster as Gloo Mesh. For the purposes of this guide, though, we will assume they are different.

Installing with meshctl

meshctl is a CLI tool that helps bootstrap Gloo Mesh, register clusters, describe configured resources, and more. Get the latest meshctl from the releases page on solo-io/gloo-mesh.

You can also quickly install like this:

curl -sL https://run.solo.io/meshctl/install | sh

Once you have the meshctl tool, you can install Gloo Mesh onto the cluster acting as the management cluster like this:

meshctl install community

Note that this command assumes that you're still using the context for the cluster-1. If you switched away, you can explicitly specify it using the --kubecontext option:

meshctl install community --kubecontext $MGMT_CONTEXT

You should see output similar to this:

Creating namespace gloo-mesh... Done.
Starting Gloo Mesh installation...
Gloo Mesh successfully installed!
Gloo Mesh has been installed to namespace gloo-mesh

To undo the installation, run uninstall:

meshctl uninstall

Installing with kubectl apply

If you prefer working directly with the Kubernetes resources, (either to use kubectl apply or to put into CI/CD), meshctl can output yaml from the install (or any) command with the --dry-run flag:

meshctl install community --dry-run

You can use this output to later run kubectl apply:

meshctl install community --dry-run | kubectl apply -f -

Note that the --dry-run outputs the entire yaml, but does not take care of proper ordering of resources. For example, there can be a race between Custom Resource Definitions being registered and any Custom Resources being created that may appear to be an error. If that happens, just re-run the kubectl apply.

To undo the installation, run:

meshctl install community --dry-run | kubectl delete -f -

Install with Helm

The Helm charts for Gloo Mesh support Helm 3. To install with Helm first add the Gloo Mesh Helm repository:

helm repo add gloo-mesh https://storage.googleapis.com/gloo-mesh/gloo-mesh
helm repo update

Then install Gloo Mesh into the gloo-mesh namespace:

helm install gloo-mesh gloo-mesh/gloo-mesh --namespace gloo-mesh --create-namespace

Verify install

Once you've installed Gloo Mesh, verify what components were installed:

kubectl get pods -n gloo-mesh
NAME                          READY   STATUS    RESTARTS   AGE
discovery-66675cf6fd-cdlpq    1/1     Running   0          32m
networking-6d7686564d-ngrdq   1/1     Running   0          32m

Running the check command from meshctl will verify everything was installed correctly:

meshctl check
Gloo Mesh
-------------------
✅ Gloo Mesh pods are running

Management Configuration
---------------------------
✅ Gloo Mesh networking configuration resources are in a valid state

Next steps

With Gloo Mesh installed, the next step is to register clusters with Gloo Mesh and discover the service meshes running on those clusters.