Skip to content

Kubernetes Packages ​

Use https://artifacthub.io/ to find packages for Kubernetes.

Before installing any package, make sure you have kubectl and helm installed. Also setup completed for your cluster like load balancer, metrics server, etc.

Prometheus Stack ​

https://artifacthub.io/packages/helm/prometheus-community/prometheus

This will add prometheus and grafana to your cluster. This stack uses helm to install.

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

for different storage classes, change storageClassName

yaml
--set prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.storageClassName=local-storage
--set grafana.persistence.storageClassName=local-storage
sh
helm install kube-prometheus-stack \
  --create-namespace \
  --namespace kube-prometheus-stack \
  prometheus-community/kube-prometheus-stack \
  --set prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.resources.requests.storage=4Gi \
  --set grafana.persistence.enabled=true \
  --set grafana.persistence.type=pvc \
  --set grafana.persistence.size=2Gi \
  --set "grafana.adminPassword=kube#1234"

Loki Stack ​

sh
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
sh
helm install loki \
  --namespace kube-prometheus-stack \
  grafana/loki-stack

Add to grafana with this address http://loki:3100

TODO: change data source to persistance

Tempo ​

sh
helm install tempo \
  --namespace kube-prometheus-stack \
  grafana/tempo \
  --set persistence.enabled=true \
  --set persistence.size=5Gi

Add to grafana with this address http://tempo:3100

Access Grafana ​

Access with grafana.kube.com with admin and kube#1234 password.

Add route:

sh
cat <<EOF | kubectl -n kube-prometheus-stack apply -f -
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: grafana-kube
spec:
  parentRefs:
  - name: kube
    namespace: default
  hostnames:
  - "grafana.kube.com"
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /
    backendRefs:
    - name: kube-prometheus-stack-grafana
      port: 80
      namespace: kube-prometheus-stack
EOF

Test with curl in kind container

sh
curl -kv --connect-to grafana.kube.com:443:10.0.10.1:443 https://grafana.kube.com