User Tools

Site Tools


wikiv3:grafana_kubernetes

Deploy Grafana

$ kubectl create ns monitoring
grafana.yaml
# vim grafana.yaml
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-grafana
  namespace: monitoring
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: local-storage
  local:
    path: /volumes/kubernetes/grafana
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - kube-worker-01.juntotelecom.com.br
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: grafana-pvc
  namespace: monitoring
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: grafana
  name: grafana
  namespace: monitoring
spec:
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      securityContext:
        fsGroup: 472
        supplementalGroups:
          - 0
      containers:
        - name: grafana
          image: grafana/grafana:8.4.4
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 3000
              name: http-grafana
              protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /robots.txt
              port: 3000
              scheme: HTTP
            initialDelaySeconds: 10
            periodSeconds: 30
            successThreshold: 1
            timeoutSeconds: 2
          livenessProbe:
            failureThreshold: 3
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: 3000
            timeoutSeconds: 1
          resources:
            requests:
              cpu: 250m
              memory: 750Mi
          volumeMounts:
            - mountPath: /var/lib/grafana
              name: grafana-pv
      volumes:
        - name: grafana-pv
          persistentVolumeClaim:
            claimName: grafana-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: grafana
  namespace: monitoring
spec:
  ports:
    - port: 3000
      protocol: TCP
      targetPort: http-grafana
  selector:
    app: grafana
  sessionAffinity: None
  type: LoadBalancer
$ kubectl -f grafana.yaml
$ kubectl get all -n monitoring
NAME                           READY   STATUS    RESTARTS   AGE
pod/grafana-58d576f784-fqslq   1/1     Running   0          5m6s
 
NAME              TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
service/grafana   LoadBalancer   10.96.77.226   <pending>     3000:31832/TCP   5m6s
 
NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/grafana   1/1     1            1           5m6s
 
NAME                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/grafana-58d576f784   1         1         1       5m6s
wikiv3/grafana_kubernetes.txt · Last modified: by 127.0.0.1