1.部署grafana 

apiVersion: apps/v1 
kind: StatefulSet 
metadata:
  name: grafana
  namespace: kube-system
spec:
  serviceName: "grafana"
  replicas: 1
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      containers:
      - name: grafana
        image: grafana/grafana
        ports:
          - containerPort: 3000
            protocol: TCP
        resources:
          limits:
            cpu: 100m            
            memory: 256Mi          
          requests:
            cpu: 100m            
            memory: 256Mi
        volumeMounts:
          - name: grafana-data
            mountPath: /var/lib/grafana
            subPath: grafana
      securityContext:
        fsGroup: 472
        runAsUser: 472
  volumeClaimTemplates:
  - metadata:
      name: grafana-data
    spec:
      storageClassName: managed-nfs-storage 
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: "1Gi"

---

apiVersion: v1
kind: Service
metadata:
  name: grafana
  namespace: kube-system
spec:
  type: NodePort
  ports:
  - port : 80
    targetPort: 3000
    nodePort: 30007
  selector:
    app: grafana

2.storageclass提前创建好的

[root@kubemaster01 grafana]# kubectl  get sc
NAME                  PROVISIONER      AGE
managed-nfs-storage   fuseim.pri/ifs   4h15m
[root@kubemaster01 grafana]#

3.访问

[root@kubemaster01 grafana]# kubectl  get svc   -n  kube-system 
NAME                   TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)          AGE
grafana                NodePort    169.169.180.248           80:30007/TCP     6m33s

4.访问 添加数据源 出图

prometheus09-k8s部署grafana_第1张图片

prometheus09-k8s部署grafana_第2张图片

prometheus09-k8s部署grafana_第3张图片

prometheus09-k8s部署grafana_第4张图片

prometheus09-k8s部署grafana_第5张图片