Quick Start with Kubernetes
Prerequisites
1. Install the Meshery command line client, mesheryctl .Available Deployment Methods
Using mesheryctl
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
Meshery server supports customizing authentication flow callback URL, which can be configured in the following way
$ MESHERY_SERVER_CALLBACK_URL=https://custom-host mesheryctl system start
Using Helm Charts
Run the following for default:
$ 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:
$ helm repo add meshery https://meshery.io/charts/ # Example: Pin your deployment to a specific Meshery version $ helm install meshery meshery/meshery --version v0.5.67 # Example: Disabled the Meshery Adapter for Linkerd and verify the deployment manifest $ helm install --set meshery-linkerd.enabled=false meshery/meshery --dry-run # Example: 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
The key of Meshery adapters you can find here
Using Kubernetes Manifests [deprecated]
Meshery can also be deployed on an existing Kubernetes cluster. See compatibility table for version compatibility. To install Meshery on your cluster, clone the Meshery repo:
$ git clone https://github.com/layer5io/meshery.git; $ cd meshery
Create a namespace as a new logical space to host Meshery and its components:
$ kubectl create ns meshery
All the needed deployment yamls for deploying Meshery are included in the install/deployment_yamls/k8s folder inside the cloned Meshery folder. To deploy the yamls on the cluster please run the following command:
$ kubectl -n meshery apply -f install/deployment_yamls/k8s
Once the yaml files are deployed, we need to expose the meshery service to be able to access the service from outside the cluster. There are several ways a service can be exposed on Kubernetes. Here we will describe 3 common ways we can expose a service:
Ingress
If your Kubernetes cluster has a functional Ingress Controller, then you can configure an ingress to expose Meshery:
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: meshery-ingress annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: * http: paths: - path: / backend: # Please kindly check your service name and service port to confirm the Ingress can work well serviceName: meshery-service servicePort: 9081
-
LoadBalancer - If your Kubernetes cluster has an external load balancer, this might be a logical route.
-
NodePort - If your cluster does not have an Ingress Controller or a load balancer, then use NodePort to expose Meshery:
apiVersion: v1 kind: Service spec: type: NodePort
Meshery should now be connected with your managed Kubernetes instance. Take a look at the Meshery guides for advanced usage tips.