Quick Start with Kubernetes

Prerequisites

1. Install the Meshery command line client, mesheryctl .

Available Deployment Methods

Using mesheryctl

$ mesheryctl system context create k8s -p kubernetes -s

Don’t have mesheryctl? Install with Bash, Brew, or Scoop.

Optional: Verify Step

Ensure that your current-context has platform: kubernetes configured in ~/.meshery/config.yaml. Example context:


➜  ~ mesheryctl system context view
endpoint: http://localhost:9081
token: default
platform: kubernetes
adapters:
- meshery-istio
- meshery-linkerd
- meshery-consul
- meshery-nsm
- meshery-kuma
- meshery-cpx
- meshery-osm
- meshery-traefik-mesh
channel: stable
version: latest

Deploy Meshery to your Kubernetes cluster by executing:

$ mesheryctl system start

Using Helm

$ helm repo add meshery https://meshery.io/charts/ $ helm install meshery-operator meshery/meshery-operator $ helm install meshery meshery/meshery

Customize of deployment the Meshery adapters:

Example: Pin your deployment to a specific Meshery version
$ helm install meshery meshery/meshery --version v0.7.0
Example: Disabled the Meshery Adapter for Linkerd and verify the deployment manifest
$ helm install --set meshery-linkerd.enabled=false meshery/meshery --dry-run

The key for Meshery Adapters can be found here

Exposing Meshery Service

If your Kubernetes cluster has a functional Ingress Controller, then you can configure an ingress to expose Meshery:

  • Ingress (example)
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: meshery-ingress annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: * http: paths: - path: / backend: serviceName: meshery-service servicePort: 9081
  • LoadBalancer - If your Kubernetes cluster has support of a LoadBalancer resource, this is an ideal choice.

  • NodePort - If your cluster does not have an Ingress Controller or a LoadBalancer support, then use NodePort to expose Meshery:

Advanced Installations

Configurable OAuth Callback URL (learn more)

Meshery Server supports customizing authentication flow callback URL, which can be configured in the following way:


$ helm install meshery --namespace meshery --set env.MESHERY_SERVER_CALLBACK_URL=https://custom-host meshery/meshery

Meshery should now be connected with your managed Kubernetes instance. Take a look at the Meshery guides for advanced usage tips.