# Kubernetes Monitoring with Managed VictoriaMetrics Monitoring kubernetes cluster is necessary to build SLO/SLI, to analyze performance and cost-efficiency of your workloads. To enable enable kubernetes cluster monitoring, we will be collecting metrics about cluster performance and utilization from kubernetes components like `kube-api-server`, `kube-controller-manager`, `kube-scheduler`, `kube-state-metrics`, `etcd`, `core-dns`, `kubelet` and `kube-proxy`. We will also install some recording rules, alert rules and dashboards to provide visibility of cluster performance, as well as alerting for cluster metrics. For node resource utilization we will be collecting metrics from `node-exporter`. We will also install dashboard and alerts for node related metrics For workloads monitoring in kubernetes cluster we will have [VictoriaMetrics Operator](https://docs.victoriametrics.com/operator/VictoriaMetrics-Operator.html). It enables us to define scrape jobs using kubernetes CRDs [VMServiceScrape](https://docs.victoriametrics.com/operator/design.html#vmservicescrape), [VMPodScrape](https://docs.victoriametrics.com/operator/design.html#vmpodscrape). To add alerts or recording rules for workloads we can use [VMRule](https://docs.victoriametrics.com/operator/design.html#vmrule) CRD ## Installation In this guide we will be using [victoria-metrics-k8s-stack](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack) helm chart This chart will install `VMOperator`, `VMAgent`, `NodeExporter`, `kube-state-metrics`, `grafana` and some service scrape configurations to start monitoring kuberentes cluster components ### Prerequisites - Active Managed VictoriaMetrics instance. You can learn how to signup for Managed VictoriaMetrics [here](https://docs.victoriametrics.com/managed-victoriametrics/quickstart.html#how-to-register). - Access to your kubernetes cluster - Helm binary. You can find installation [here]https://helm.sh/docs/intro/install/() ### Installation steps Install the Helm chart in a custom namespace 1. Create a unique Kubernetes namespace, for example monitoring ``` kubectl create namespace monitoring ``` 2. Create kubernetes-secrets with token to access your dbaas deployment ``` kubectl --namespace monitoring create secret generic dbaas-write-access-token --from-literal=bearerToken=your-token kubectl --namespace monitoring create secret generic dbaas-read-access-token --from-literal=bearerToken=your-token ``` > You can find your access token on the "Access" tab of your deployment