Kubernetes Classroom Series – 07/Sept/2021

Setting up Prometheus on Kubernetes

  • Refer Here for the article for setting up prometheus on gke
  • Steps to execute from windows terminal /powershell
git clone https://github.com/GoogleCloudPlatform/prometheus-stackdriver-gke
cd prometheus-stackdriver-gke
gcloud iam service-accounts create prometheus --display-name prometheus-service-account
$PROJECT_ID=$(gcloud info --format='value(config.project)')
$PROMETHEUS_SA_EMAIL=$(gcloud iam service-accounts list --filter="displayName:prometheus-service-account" --format='value(email)')
gcloud projects add-iam-policy-binding $PROJECT_ID --role roles/monitoring.metricWriter --member serviceAccount:$PROMETHEUS_SA_EMAIL
gcloud iam service-accounts keys create prometheus-service-account.json --iam-account $PROMETHEUS_SA_EMAIL
gcloud container clusters create hello-cluster --num-nodes=1
gcloud container clusters get-credentials hello-cluster
kubectl create namespace prometheus
  • Make changes in gke-prometheus-deployment.yaml
#Copyright 2019 Google LLC

#Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License.
#You may obtain a copy of the License at

#https://www.apache.org/licenses/LICENSE-2.0

#Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#limitations under the License.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: prometheus-deployment
  namespace: prometheus
  labels:
    app: prometheus-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: prometheus-server
  template:
    metadata:
      labels:
        app: prometheus-server
    spec:
      containers:
        - name: prometheus
          image: prom/prometheus:v2.19.3
          args:
            - "--config.file=/etc/prometheus/prometheus.yml"
            - "--storage.tsdb.path=/prometheus/"
          ports:
            - containerPort: 9090
          volumeMounts:
            - name: prometheus-config-volume
              mountPath: /etc/prometheus/
            - name: prometheus-storage-volume
              mountPath: /prometheus/
        - name: sidecar
          image: gcr.io/stackdriver-prometheus/stackdriver-prometheus-sidecar:0.8.2
          imagePullPolicy: Always
          args:
            - --stackdriver.project-id=expertkubernetes
            - --prometheus.wal-directory=/prometheus/wal
            - --stackdriver.kubernetes.location=us-central1-a
            - --stackdriver.kubernetes.cluster-name=hello-cluster
            #- \"--stackdriver.generic.location=${GCP_LOCATION}\"
            #- \"--stackdriver.generic.namespace=${KUBE_CLUSTER}\"
          ports:
            - name: sidecar
              containerPort: 9091
          volumeMounts:
            - name: prometheus-storage-volume
              mountPath: /prometheus
      volumes:
        - name: prometheus-config-volume
          configMap:
            defaultMode: 420
            name: prometheus-server-conf
        - name: prometheus-storage-volume
          emptyDir: {}


  • Now apply
kubectl apply -f .\gke-prometheus-deployment.yaml
kubectl get pods -n prometheus
$PROMETHEUS_POD_GKE=$(kubectl get pods --namespace prometheus -l "app=prometheus-server" -o jsonpath="{.items[0].metadata.name}" )
kubectl port-forward --namespace prometheus $PROMETHEUS_POD_GKE 9090:9090
  • Now work with Prometheus Expression Browser Preview Preview Preview Preview

  • Now lets create a postgres deployment into the k8s cluster

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install gke bitnami/postgresql --set metrics.enabled=true --set postgresqlDatabase=prometheusdb

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Animated Social Media Icons by Acurax Wordpress Development Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube