docs/content/en/installation/kubernetes/helm.md
{{< code code=helm repo add meshery https://meshery.io/charts/ helm install meshery meshery/meshery --namespace meshery --create-namespace >}}
Optionally, Meshery Server supports customizing the callback URL for your remote provider, like so:
{{< code code="helm install meshery meshery/meshery --namespace meshery --set env.MESHERY_SERVER_CALLBACK_URL=https://custom-host --create-namespace" >}}
Meshery's Helm chart supports a number of configuration options. Please refer to the Meshery Helm chart and Meshery Operator Helm Chart for more information.
By default, Meshery looks for Kubernetes configuration in the /home/appuser/.kube directory within the container. You can customize this location by setting the KUBECONFIG_FOLDER environment variable:
{{< code code="helm install meshery meshery/meshery --namespace meshery --set env.KUBECONFIG_FOLDER=/custom/path/to/.kube --create-namespace" >}}
This is useful when providing a Meshery deployment with a predefined Kubernetes context or when using custom volume mounts for kubeconfig files.
To upgrade an existing Meshery deployment:
{{< code code=helm repo update helm upgrade meshery meshery/meshery --namespace meshery >}}
For optimal upgrade performance with health check support, use the upgrade-specific values:
{{< code code=helm upgrade meshery meshery/meshery --namespace meshery -f https://raw.githubusercontent.com/meshery/meshery/master/install/kubernetes/helm/meshery/values-upgrade.yaml --wait --timeout 10m >}}
The upgrade configuration includes:
See the Health Check Configuration Guide for detailed information.
Meshery implements Kubernetes-compliant health check endpoints that follow best practices from the Kubernetes API server:
/healthz/live) - Checks if Meshery is running and responsive/healthz/ready) - Checks if Meshery is ready to accept trafficMonitor the status of your Meshery deployment:
{{< code code="kubectl get pods --namespace meshery -w" >}}
Verify health status with detailed information using verbose mode:
{{< code code=kubectl exec --namespace meshery deployment/meshery -- curl -s 'http://localhost:8080/healthz/ready?verbose=1' >}}
Example output:
[+]capabilities ok
[i]extension extension package found
healthz check passed
Legend:
[+] - Health check passed[-] - Health check failed (causes pod to be marked unhealthy)[i] - Informational status (does not affect health)The Helm chart includes pre-configured health checks with sensible defaults:
To customize probe settings, modify your values.yaml:
{{< code code=`probe: livenessProbe: enabled: true initialDelaySeconds: 80 periodSeconds: 12 failureThreshold: 4 timeoutSeconds: 5
readinessProbe: enabled: true initialDelaySeconds: 10 periodSeconds: 4 failureThreshold: 4 timeoutSeconds: 3` >}}
For comprehensive guidance on configuring health checks for different scenarios (installation, upgrades, troubleshooting), see the Health Check Configuration Guide.
Optionally, you can verify the health of your Meshery deployment using <a href='/reference/mesheryctl/system/check'>mesheryctl system check</a>.
You're ready to use Meshery! Open your browser and navigate to the Meshery UI.
{{< installation/accessing-meshery-ui >}}
{{< related-discussions tag="meshery" >}}