首先确认Kubernetes版本,这里我使用的版本为最新版

Grafana 12版本预览页面可以参考https://grafana.frps.cn

- namespace我这里统一放在tools目录

1752045907042.png

还需要确认StorageClass

root@k8s-master-01:~# kubectl get sc
NAME                        PROVISIONER                                   RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
dsm7-nfs-client (default)   k8s-sigs.io/nfs-subdir-external-provisioner   Delete          Immediate           false                  6d17h


接下来创建PVC文件

root@k8s-master-01:~/prometheus/grafana# cat grafana-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: grafana-pvc
  namespace: tools
  labels:
    app: grafana
spec:
  storageClassName: "dsm7-nfs-client"
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi


创建完毕后请及时检查pvc是否是Bound状态

root@k8s-master-01:~/prometheus/grafana# kubectl get pvc -n tools
NAME          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      VOLUMEATTRIBUTESCLASS   AGE
grafana-pvc   Bound    pvc-3fdb9723-ef93-4688-b55b-4d6458364132   50Gi       RWO            dsm7-nfs-client   <unset>                 21m


接下来创建Deployment

root@k8s-master-01:~/prometheus/grafana# cat grafana.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: grafana
  namespace: tools
spec:
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      volumes:
        - name: storage
          persistentVolumeClaim:
            claimName: grafana-pvc
      securityContext:
        runAsUser: 0
      containers:
        - name: grafana
          image: dockerproxy.frps.fun/grafana/grafana:12.0.2
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 3000
              name: grafana
          env:
            - name: GF_SECURITY_ADMIN_USER
              value: abcdocker
            - name: GF_SECURITY_ADMIN_PASSWORD
              value: i4t-com123
            - name: GF_AUTH_ANONYMOUS_ENABLED
              value: "true"
            - name: GF_AUTH_ANONYMOUS_ORG_ROLE
              value: "Viewer"
          readinessProbe:
            failureThreshold: 10
            httpGet:
              path: /api/health
              port: 3000
              scheme: HTTP
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 30
          livenessProbe:
            failureThreshold: 3
            httpGet:
              path: /api/health
              port: 3000
              scheme: HTTP
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 1
          resources:
            limits:
              cpu: 150m
              memory: 512Mi
            requests:
              cpu: 150m
              memory: 512Mi
          volumeMounts:
            - mountPath: /var/lib/grafana
              name: storage


- GF_SECURITY_ADMIN_USER #默认管理员用户名
- GF_SECURITY_ADMIN_PASSWORD #默认管理用户密码
- GF_AUTH_ANONYMOUS_ENABLED #是否开启匿名访问 (不需要就可以删除掉)
- GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer #默认访问用户的权限(既然都不登录了,就设置为只读即可)
- dockerproxy.frps.fun/grafana/grafana:12.0.2 #本站提供加速镜像,也可以使用官方harbor

创建Service

apiVersion: v1
kind: Service
metadata:
  name: grafana
  namespace: tools
spec:
  type: NodePort
  ports:
    - port: 3000
  selector:
    app: grafana


接下来查Grafana状态

root@k8s-master-01:~/prometheus/grafana# kubectl get all -n tools|grep grafana
pod/grafana-5c879dbbd8-2lnrx            1/1     Running   0          7m13s
service/grafana             NodePort    10.96.3.169   <none>        3000:32006/TCP   45m
deployment.apps/grafana             1/1     1            1           33m
replicaset.apps/grafana-57d8d459db            0         0         0       33m
replicaset.apps/grafana-5c879dbbd8            1         1         1       7m13s


接下来就可以访问测试

1752047285273.png

Docker版本可以参考下面的文章配置





https://i4t.com/5313.htmljavascript:void(0))

Docker 安装Grafana 修改配置文件开启匿名登陆


新闻联播老司机

- 22年3月14日
- 喜欢:0
- 浏览:3.1k