Deploy using Helm Chart
The Kepler Helm Chart is available on GitHub and ArtifactHub
Install Helm
Helm must be installed to use the charts. Please refer to Helm's documentation to get started.
Prometheus Setup
The Kepler Exporter requires the Prometheus Node Exporter to be installed. We recommend the Kube Prometheus Stack helm chart, which includes the Node Exporter, Grafana and other helpful stuff to provide easy to operate end-to-end Kubernetes cluster monitoring with Prometheus using the Prometheus Operator.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--create-namespace \
--wait
Add the Kepler Helm repo
helm repo add kepler https://sustainable-computing-io.github.io/kepler-helm-chart
helm repo update
You can see the latest version by using the following command:
helm search repo kepler
If you would like to test and look at the manifest files before deploying you can run:
helm install kepler kepler/kepler --namespace kepler --create-namespace --dry-run --devel
Install Kepler
For Prometheus to be able to discover the metrics exported by Kepler, the
serviceMonitor
needs to be enabled and labeled with the release name of your
Prometheus install. In our installation we called our kube-prometheus-stack install prometheus
:
helm install kepler kepler/kepler \
--namespace kepler \
--create-namespace \
--set serviceMonitor.enabled=true \
--set serviceMonitor.labels.release=prometheus \
Alternatively, you can also override the values.yaml file to set these and the following values:
helm install kepler kepler/kepler --values values.yaml --namespace kepler --create-namespace
The following table lists the configurable parameters for this chart and their default values.
Parameter | Description | Default |
---|---|---|
global.namespace | Kubernetes namespace for Kepler | kepler |
image.repository | Repository for Kepler Image | quay.io/sustainable_computing_io/kepler |
image.pullPolicy | Pull policy for Kepler | Always |
image.tag | Image tag for Kepler Image | latest |
serviceAccount.name | Service account name for Kepler | kepler-sa |
service.type | Kepler service type | ClusterIP |
service.port | Kepler service exposed port | 9102 |
Post Install
After Installation you can wait for Kepler to get ready:
KPLR_POD=$(
kubectl get pod \
-l app.kubernetes.io/name=kepler \
-o jsonpath="{.items[0].metadata.name}" \
-n kepler
)
kubectl wait --for=condition=Ready pod $KPLR_POD --timeout=-1s -n kepler
and add the Kepler dashboard to Grafana:
GF_POD=$(
kubectl get pod \
-n monitoring \
-l app.kubernetes.io/name=grafana \
-o jsonpath="{.items[0].metadata.name}"
)
kubectl cp kepler_dashboard.json monitoring/$GF_POD:/tmp/dashboards/kepler_dashboard.json
Uninstall Kepler
To uninstall this chart, use the following steps
helm delete kepler --namespace kepler