Helm/Prometheus Stack/PV

From Chorke Wiki
Jump to navigation Jump to search

Helm » Repo » Manage

helm repo add prometheus https://prometheus-community.github.io/helm-charts
helm repo update && helm repo list

Helm » K8s » Config

Helm » K8s » Config

export KUBECONFIG=${HOME}/.kube/eks-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/gke-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/lke-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-aa-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ab-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ac-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ae-kubeconfig.yaml
kubectl config get-contexts
kubectl config view

Helm » K8s » Storage

Helm » K8s » Storage

cat << EXE | sudo bash
mkdir -p           /var/minikube/pvc/monitoring/data-prometheus-0/prometheus-db
chown -R 1000:2000 /var/minikube/pvc/monitoring/data-prometheus-0/prometheus-db
chmod -R   750     /var/minikube/pvc/monitoring/
EXE
cat <<'YML'| kubectl apply -f -
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: monitoring-data-prometheus-0
spec:
  capacity:
    storage: 50Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: hostpath
  hostPath:
    path: /var/hostpath_pv/monitoring/data-prometheus-0
    type: DirectoryOrCreate
YML



Helm » Install

Helm » Install

helm show values prometheus/kube-prometheus-stack --version=65.0.0 |less
helm show values prometheus/kube-prometheus-stack --version=75.12.0|less
kubectl create ns   monitoring
kubectl get ns|grep monitoring
cat << ENV | \
kubectl -n monitoring create secret generic prometheus-basic-auth --from-file=auth=/dev/stdin
$(htpasswd -nbB shahed 'sadaqah!')
$(htpasswd -nbB chorke 'sadaqah!')
ENV
cat <<'YML'| kubectl apply -n monitoring -f -
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: prometheus-db-prometheus-prometheus-prometheus-0
  namespace: monitoring
  labels:
    app.kubernetes.io/version: 1.0.0
    app.kubernetes.io/name: prometheus
    app.kubernetes.io/managed-by: kubectl
    app.kubernetes.io/instance: prometheus
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi
  storageClassName: hostpath
  volumeName: monitoring-data-prometheus-0
YML

Find More 👉 Storage » Mount


Find More 👉 Storage » Class » Hostpath


Find More 👉 Storage » Persistent Volume


cat << YML | \
helm -n monitoring install    prometheus prometheus/kube-prometheus-stack --version=75.12.0 -f -
fullnameOverride: prometheus
prometheusOperator:
  annotations:
    kubernetes.io/change-cause: 'CKI-1| Initial Deployment'

kubeStateMetrics:
  annotations:
    kubernetes.io/change-cause: 'CKI-1| Initial Deployment'

prometheus:
  ingress:
    enabled: true
    hosts:
    - prometheus.ae.shahed.shahed.biz
  prometheusSpec:
    retention: 90d
    storageSpec:
      volumeClaimTemplate:
        metadata:
          name: prometheus-db
        spec:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 50Gi
          storageClassName: hostpath
  annotations:
    kubernetes.io/change-cause: 'CKI-1| Initial Deployment'

alertmanager:
  ingress:
    enabled: true
    hosts:
    - alertmanager.ae.shahed.shahed.biz
  annotations:
    kubernetes.io/change-cause: 'CKI-1| Initial Deployment'

grafana:
  ingress:
    enabled: true
    hosts:
    - grafana.ae.shahed.shahed.biz
  annotations:
    kubernetes.io/change-cause: 'CKI-1| Initial Deployment'
YML

kubectl -n monitoring annotate deploy prometheus-kube-state-metrics \
 kubernetes.io/change-cause='CKI-1| Initial Deployment'

cat << YML | \
kubectl -n monitoring patch ingress prometheus-prometheus --type merge --patch-file=/dev/stdin
---
metadata:
  annotations:
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: prometheus-basic-auth
    nginx.ingress.kubernetes.io/auth-realm: Authentication Required
YML

cat << YML | \
kubectl -n monitoring patch ingress prometheus-alertmanager --type merge --patch-file=/dev/stdin
---
metadata:
  annotations:
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: prometheus-basic-auth
    nginx.ingress.kubernetes.io/auth-realm: Authentication Required
YML

cat << YML | \
kubectl -n monitoring patch secret prometheus-grafana --type merge --patch-file=/dev/stdin
---
data:
  admin-password: $(echo -n 'sadaqah!'|base64)
YML
kubectl -n monitoring rollout restart deploy/prometheus-grafana

Helm » K8s » Verify

Helm » K8s » Verify

kubectl -n monitoring get secrets prometheus-grafana -o yaml|yq -r '.data."admin-password"'|base64 -d;echo
xdg-open https://www.cdn77.com/tls-test/result?domain=grafana.ae.shahed.shahed.biz
xdg-open https://grafana.ae.shahed.shahed.biz

kubectl -n monitoring exec -it svc/prometheus-alertmanager -c alertmanager -- sh
kubectl -n monitoring exec -it svc/prometheus-alertmanager -c alertmanager -- id
kubectl -n monitoring logs -f  svc/prometheus-alertmanager -c alertmanager

kubectl -n monitoring exec -it svc/prometheus-prometheus   -c prometheus   -- sh
kubectl -n monitoring exec -it svc/prometheus-prometheus   -c prometheus   -- id
kubectl -n monitoring logs -f  svc/prometheus-prometheus   -c prometheus

kubectl -n monitoring exec -it svc/prometheus-grafana      -c grafana      -- sh
kubectl -n monitoring exec -it svc/prometheus-grafana      -c grafana      -- id
kubectl -n monitoring logs -f  svc/prometheus-grafana      -c grafana

---
Page: https://alertmanager.ae.shahed.shahed.biz
user: admin
pass: sadaqah!
---
Page: https://prometheus.ae.shahed.shahed.biz
user: admin
pass: sadaqah!
---
Page: https://grafana.ae.shahed.shahed.biz
user: admin
pass: sadaqah!

Helm » Uninstall

Helm » Uninstall

helm    uninstall  monitoring -n monitoring
kubectl delete pvc --all      -n monitoring
kubectl delete pv  monitoring-data-prometheus-0
kubectl delete deploy --all   -n monitoring
kubectl delete all    --all   -n monitoring
kubectl delete ns                monitoring
cat << EXE | bash
kubectl delete crd              probes.monitoring.coreos.com
kubectl delete crd         podmonitors.monitoring.coreos.com
kubectl delete crd        prometheuses.monitoring.coreos.com
kubectl delete crd        thanosrulers.monitoring.coreos.com
kubectl delete crd       alertmanagers.monitoring.coreos.com
kubectl delete crd       scrapeconfigs.monitoring.coreos.com
kubectl delete crd     prometheusrules.monitoring.coreos.com
kubectl delete crd     servicemonitors.monitoring.coreos.com
kubectl delete crd    prometheusagents.monitoring.coreos.com
kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
EXE

Playground

Playground

helm -n monitoring install    prometheus prometheus/kube-prometheus-stack --version=65.0.0
helm -n monitoring upgrade -i prometheus prometheus/kube-prometheus-stack --version=75.12.0
helm    show    values                   prometheus/kube-prometheus-stack --version=75.12.0|less

kubectl -n monitoring get secrets prometheus-grafana    -o yaml|yq -r '.data."admin-password"'|base64 -d;echo
kubectl -n monitoring get secrets prometheus-basic-auth -o yaml|yq -r '.data.auth'            |base64 -d;echo

kubectl -n monitoring logs -f  svc/prometheus-alertmanager -c init-config-reloader
kubectl -n monitoring logs -f  svc/prometheus-alertmanager -c      config-reloader
kubectl -n monitoring logs -f  svc/prometheus-alertmanager -c alertmanager

kubectl -n monitoring logs -f  svc/prometheus-prometheus   -c init-config-reloader
kubectl -n monitoring logs -f  svc/prometheus-prometheus   -c      config-reloader
kubectl -n monitoring logs -f  svc/prometheus-prometheus   -c prometheus

kubectl -n monitoring logs -f  svc/prometheus-grafana      -c grafana-sc-datasources
kubectl -n monitoring logs -f  svc/prometheus-grafana      -c grafana-sc-dashboard
kubectl -n monitoring logs -f  svc/prometheus-grafana      -c grafana
kubectl -n monitoring delete all --all
kubectl -n monitoring delete ing --all
kubectl -n monitoring delete sts --all
kubectl    delete  pv monitoring-data-prometheus-0
kubectl -n monitoring delete svc --all
kubectl -n monitoring delete pvc --all
kubectl -n monitoring rollout history deploy/prometheus-grafana
kubectl -n monitoring rollout restart deploy/prometheus-grafana
kubectl -n monitoring rollout status  deploy/prometheus-grafana

kubectl -n monitoring logs -f  svc/prometheus-alertmanager
kubectl -n monitoring logs -f  svc/prometheus-prometheus
kubectl -n monitoring logs -f  svc/prometheus-grafana

References

References