Install Gloo Mesh Enterprise

Install the Gloo Mesh Enterprise management components into a cluster.

Your Gloo Mesh setup consists of a management plane and a data plane.

Before you begin

  1. Create or choose a cluster to serve as the management cluster.

  2. Set the names of your clusters from your infrastructure provider.
export MGMT_CLUSTER=<management_cluster_name>
  1. Save the kubeconfig contexts for your clusters. Run kubectl config get-contexts, look for the cluster name in the CLUSTER column, and get the context name in the NAME column.
export MGMT_CONTEXT=<management_cluster_context>
  1. Add your Gloo Mesh Enterprise license that you got from your Solo account representative. If you do not have a key yet, you can get a trial license by contacting an account representative.

    export GLOO_MESH_LICENSE_KEY=<license_key>
    
  2. Production installations: Review Best practices for production to prepare your optional security measures. For example, before you begin you Gloo Mesh installation, you can provide your own certificates and set up secure access to the Gloo Mesh dashboard.

  3. To customize your installation in detail, such as for production environments, install with Helm. For quick installations, such as for testing environments, you can install with meshctl.

Installing with Helm

Customize your management plane by installing with the Gloo Mesh Enterprise Helm chart.

  1. Install helm, the Kubernetes package manager.

  2. Add and update the Helm repository for Gloo Mesh Enterprise.

helm repo add gloo-mesh-enterprise https://storage.googleapis.com/gloo-mesh-enterprise/gloo-mesh-enterprise
helm repo update
  1. Optional: View the available versions of the Helm chart. For more information, see Supported versions.
helm search repo gloo-mesh-enterprise
  1. Optional: View the Helm values. Note that the gloo-mesh-enterprise Helm chart bundles multiple components, including enterprise-networking, gloo-mesh-ui, and rbac-webhook. Each is versioned in step with the parent gloo-mesh-enterprise chart, and each has its own Helm values for advanced customization. For more information, review the Gloo Mesh Enterprise Helm values documentation.
helm show values gloo-mesh-enterprise/gloo-mesh-enterprise
  1. Make any necessary customizations to the Helm charts for your installation by preparing a Helm values file. The sample command downloads the values file from GitHub to your local workstation.

    Sample values file
    For example, you can edit the values-mgmt-plane.yaml values file to provide your own details for settings that are recommended for production deployments, including custom certificates, OIDC authorization for the Gloo Mesh dashboard, and RBAC enablement. For more information about these settings, see Best practices for production and the Helm values documentation for each component.

    curl -0L https://raw.githubusercontent.com/solo-io/gloo-mesh-use-cases/main/helm-install/1.2/values-mgmt-plane.yaml > values-mgmt-plane.yaml
    
  2. Create the gloo-mesh namespace in your management cluster.

kubectl create ns gloo-mesh --context $MGMT_CONTEXT
  1. Install the Gloo Mesh Enterprise Helm chart in the gloo-mesh namespace, including the customizations in your Helm values file.
    To install the Gloo Mesh management components on a workload cluster that you also plan to register with Gloo Mesh, set the enterprise-networking.cluster value to the same name that you plan to use for this cluster during cluster registration.
helm install gloo-mesh-enterprise gloo-mesh-enterprise/gloo-mesh-enterprise --namespace gloo-mesh \
  --set licenseKey=${GLOO_MESH_LICENSE_KEY} \
  --kube-context=${MGMT_CONTEXT} \
  --values values-mgmt-plane.yaml

Installing with meshctl

Quickly install Gloo Mesh Enterprise by using meshctl.

  1. Install the latest version of meshctl. For more information, see Install the meshctl CLI.
curl -sL https://run.solo.io/meshctl/install | sh
  1. Install the Gloo Mesh management components. Note that this command installs a mimimum deployment of Gloo Mesh Enterprise for testing purposes, and some optional components are not installed. For example, self-signed certificates are used and the RBAC role-based API is not enforced. If you want to customize your installation, you can include a Helm values override file in the --chart-values-file flag, or specify individual Helm settings by using --set <setting>=<value>. For more information, review the Gloo Mesh Enterprise Helm values documentation.
    meshctl will create a self-signed certificate authority for mTLS if you do not supply your own certificates. If you prefer to set up Gloo Mesh without secure communication for quick demonstrations, include the --set global.insecure=true flag. Note that using the default self-signed CAs or using insecure mode are not suitable for production environments.
meshctl install --license $GLOO_MESH_LICENSE_KEY --kubecontext $MGMT_CONTEXT

Example output:

Installing Helm chart
Finished installing chart 'gloo-mesh-enterprise' as release gloo-mesh:gloo-mesh

Verifying the installation

After you install Gloo Mesh, verify that the management components are successfully deployed.

  1. Verify that the management component pods have a status of Running.

    kubectl get pods -n gloo-mesh --context $MGMT_CONTEXT
    

    Example output:

    NAME                                     READY   STATUS    RESTARTS   AGE
    dashboard-749dc7875c-4z77k               3/3     Running   0          41s
    enterprise-networking-778d45c7b5-5d9nh   1/1     Running   0          41s
    prometheus-server-86854b778-r6r52        2/2     Running   0          41s
    redis-dashboard-844dc4f9-jnb4j           1/1     Running   0          41s
    
  2. Verify that the management plane is correctly installed. This check might take a few seconds to ensure that the Gloo Mesh pods are running, that any expected remote agents are running and connected in remote clusters, and that the CRD versions expected by enterprise-networking match the versions of the CRDs that are installed in the management cluster.

    meshctl check server --kubecontext $MGMT_CONTEXT
    

    Note that because no remote clusters are registered yet, the agent connectivity check returns a warning.

    Gloo Mesh Management Cluster Installation
    
    🟢 Gloo Mesh Pods Status
    
    🟡 Gloo Mesh Agents Connectivity
       Hints:
       * No registered clusters detected. To register a remote cluster that has a deployed Gloo Mesh agent, add a KubernetesCluster CR.
          For more info, see: https://docs.solo.io/gloo-mesh/latest/setup/enterprise_cluster_registration/
    
    Management Configuration
    2021-10-08T17:33:05.871382Z	info	klog	apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition
    
    🟢 Gloo Mesh CRD Versions
    
    🟢 Gloo Mesh Networking Configuration Resources
    

Next Steps

Now that the Gloo Mesh management components are installed, you can register workload clusters so that Gloo Mesh can identify and manage their service meshes.