Ubuntu 20.04
Sponsored Link

MicroK8s : Enable Prometheus2020/08/17

 
Enable Prometheus add-on to monitor metrics on MicroK8s Cluster.
[1] Enable built-in Prometheus add-on on primary Node.
root@dlp:~#
microk8s enable prometheus dashboard dns

Enabling Prometheus
namespace/monitoring created
customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com created
.....
.....
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created

If RBAC is not enabled access the dashboard using the default token retrieved with:

token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $token

In an RBAC enabled setup (microk8s enable RBAC) you need to create a user with restricted
permissions as shown in:
https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md

Addon dns is already enabled.

root@dlp:~#
microk8s kubectl get services -n monitoring

NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
alertmanager-main       ClusterIP   10.152.183.5     <none>        9093/TCP                     51m
alertmanager-operated   ClusterIP   None             <none>        9093/TCP,9094/TCP,9094/UDP   51m
grafana                 ClusterIP   10.152.183.94    <none>        3000/TCP                     51m
kube-state-metrics      ClusterIP   None             <none>        8443/TCP,9443/TCP            51m
node-exporter           ClusterIP   None             <none>        9100/TCP                     51m
prometheus-adapter      ClusterIP   10.152.183.14    <none>        443/TCP                      51m
prometheus-k8s          ClusterIP   10.152.183.251   <none>        9090/TCP                     51m
prometheus-operated     ClusterIP   None             <none>        9090/TCP                     50m
prometheus-operator     ClusterIP   None             <none>        8080/TCP                     51m

root@dlp:~#
microk8s kubectl get pods -n monitoring

NAME                                  READY   STATUS    RESTARTS   AGE
alertmanager-main-0                   2/2     Running   0          51m
grafana-fbb6785d5-k8sc6               1/1     Running   0          52m
kube-state-metrics-dcc94d9f8-bnskk    3/3     Running   0          52m
node-exporter-8lg8k                   2/2     Running   0          52m
prometheus-adapter-5949969998-ss56p   1/1     Running   0          52m
prometheus-k8s-0                      3/3     Running   1          51m
prometheus-operator-5c7dcf954-xrsp7   1/1     Running   0          52m

# set port-forwarding to enable external access

# Prometheus UI

root@dlp:~#
microk8s kubectl port-forward -n monitoring service/prometheus-k8s --address 0.0.0.0 9090:9090

Forwarding from 0.0.0.0:9090 -> 9090
# Grafana UI

root@dlp:~#
microk8s kubectl port-forward -n monitoring service/grafana --address 0.0.0.0 3000:3000

Forwarding from 0.0.0.0:3000 -> 3000
[2] Access to [https://(MicroK8s primary node's Hostname or IP address):(setting port)] with an web browser on a Client computer in local network. Then, that's OK if following Prometheus or Grafana UI is shown.
For default user/password on Grafana, it [admin/admin].
Matched Content