Grafana 初始化配置挂载出来
kind: DeploymentapiVersion: apps/v1metadata:name: grafananamespace: kubesphere-monitoring-systemlabels:app.kubernetes.io/component: grafanaapp.kubernetes.io/name: grafanaapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 7.4.3annotations:deployment.kubernetes.io/revision: '30'kubectl.kubernetes.io/last-applied-configuration: >{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"grafana","app.kubernetes.io/name":"grafana","app.kubernetes.io/part-of":"kube-prometheus","app.kubernetes.io/version":"7.4.3"},"name":"grafana","namespace":"kubesphere-monitoring-system"},"spec":{"replicas":1,"selector":{"matchLabels":{"app.kubernetes.io/component":"grafana","app.kubernetes.io/name":"grafana","app.kubernetes.io/part-of":"kube-prometheus"}},"template":{"metadata":{"annotations":{"checksum/grafana-datasources":"bff02b6fd55e414ce7cf08a5ea2a85e3"},"labels":{"app.kubernetes.io/component":"grafana","app.kubernetes.io/name":"grafana","app.kubernetes.io/part-of":"kube-prometheus","app.kubernetes.io/version":"7.4.3"}},"spec":{"containers":[{"env":[],"image":"hw-harbor.ur.com.cn/grafana/grafana:7.4.3","name":"grafana","ports":[{"containerPort":3000,"name":"http"}],"readinessProbe":{"httpGet":{"path":"/api/health","port":"http"}},"resources":{"limits":{"cpu":"200m","memory":"200Mi"},"requests":{"cpu":"100m","memory":"100Mi"}},"volumeMounts":[{"mountPath":"/var/lib/grafana","name":"grafana-storage","readOnly":false},{"mountPath":"/etc/grafana/provisioning/datasources","name":"grafana-datasources","readOnly":false},{"mountPath":"/etc/grafana/provisioning/dashboards","name":"grafana-dashboards","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/apiserver","name":"grafana-dashboard-apiserver","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/cluster-total","name":"grafana-dashboard-cluster-total","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/controller-manager","name":"grafana-dashboard-controller-manager","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/k8s-resources-cluster","name":"grafana-dashboard-k8s-resources-cluster","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/k8s-resources-namespace","name":"grafana-dashboard-k8s-resources-namespace","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/k8s-resources-node","name":"grafana-dashboard-k8s-resources-node","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/k8s-resources-pod","name":"grafana-dashboard-k8s-resources-pod","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/k8s-resources-workload","name":"grafana-dashboard-k8s-resources-workload","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/k8s-resources-workloads-namespace","name":"grafana-dashboard-k8s-resources-workloads-namespace","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/kubelet","name":"grafana-dashboard-kubelet","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/namespace-by-pod","name":"grafana-dashboard-namespace-by-pod","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/namespace-by-workload","name":"grafana-dashboard-namespace-by-workload","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/node-cluster-rsrc-use","name":"grafana-dashboard-node-cluster-rsrc-use","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/node-rsrc-use","name":"grafana-dashboard-node-rsrc-use","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/nodes","name":"grafana-dashboard-nodes","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/persistentvolumesusage","name":"grafana-dashboard-persistentvolumesusage","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/pod-total","name":"grafana-dashboard-pod-total","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/prometheus-remote-write","name":"grafana-dashboard-prometheus-remote-write","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/prometheus","name":"grafana-dashboard-prometheus","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/proxy","name":"grafana-dashboard-proxy","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/scheduler","name":"grafana-dashboard-scheduler","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/statefulset","name":"grafana-dashboard-statefulset","readOnly":false},{"mountPath":"/grafana-dashboard-definitions/0/workload-total","name":"grafana-dashboard-workload-total","readOnly":false}]}],"nodeSelector":{"beta.kubernetes.io/os":"linux"},"securityContext":{"fsGroup":65534,"runAsNonRoot":true,"runAsUser":65534},"serviceAccountName":"grafana","volumes":[{"name":"grafana-storage","persistentVolumeClaim":{"claimName":"csi-nas"}},{"name":"grafana-datasources","secret":{"secretName":"grafana-datasources"}},{"configMap":{"name":"grafana-dashboards"},"name":"grafana-dashboards"},{"configMap":{"name":"grafana-dashboard-apiserver"},"name":"grafana-dashboard-apiserver"},{"configMap":{"name":"grafana-dashboard-cluster-total"},"name":"grafana-dashboard-cluster-total"},{"configMap":{"name":"grafana-dashboard-controller-manager"},"name":"grafana-dashboard-controller-manager"},{"configMap":{"name":"grafana-dashboard-k8s-resources-cluster"},"name":"grafana-dashboard-k8s-resources-cluster"},{"configMap":{"name":"grafana-dashboard-k8s-resources-namespace"},"name":"grafana-dashboard-k8s-resources-namespace"},{"configMap":{"name":"grafana-dashboard-k8s-resources-node"},"name":"grafana-dashboard-k8s-resources-node"},{"configMap":{"name":"grafana-dashboard-k8s-resources-pod"},"name":"grafana-dashboard-k8s-resources-pod"},{"configMap":{"name":"grafana-dashboard-k8s-resources-workload"},"name":"grafana-dashboard-k8s-resources-workload"},{"configMap":{"name":"grafana-dashboard-k8s-resources-workloads-namespace"},"name":"grafana-dashboard-k8s-resources-workloads-namespace"},{"configMap":{"name":"grafana-dashboard-kubelet"},"name":"grafana-dashboard-kubelet"},{"configMap":{"name":"grafana-dashboard-namespace-by-pod"},"name":"grafana-dashboard-namespace-by-pod"},{"configMap":{"name":"grafana-dashboard-namespace-by-workload"},"name":"grafana-dashboard-namespace-by-workload"},{"configMap":{"name":"grafana-dashboard-node-cluster-rsrc-use"},"name":"grafana-dashboard-node-cluster-rsrc-use"},{"configMap":{"name":"grafana-dashboard-node-rsrc-use"},"name":"grafana-dashboard-node-rsrc-use"},{"configMap":{"name":"grafana-dashboard-nodes"},"name":"grafana-dashboard-nodes"},{"configMap":{"name":"grafana-dashboard-persistentvolumesusage"},"name":"grafana-dashboard-persistentvolumesusage"},{"configMap":{"name":"grafana-dashboard-pod-total"},"name":"grafana-dashboard-pod-total"},{"configMap":{"name":"grafana-dashboard-prometheus-remote-write"},"name":"grafana-dashboard-prometheus-remote-write"},{"configMap":{"name":"grafana-dashboard-prometheus"},"name":"grafana-dashboard-prometheus"},{"configMap":{"name":"grafana-dashboard-proxy"},"name":"grafana-dashboard-proxy"},{"configMap":{"name":"grafana-dashboard-scheduler"},"name":"grafana-dashboard-scheduler"},{"configMap":{"name":"grafana-dashboard-statefulset"},"name":"grafana-dashboard-statefulset"},{"configMap":{"name":"grafana-dashboard-workload-total"},"name":"grafana-dashboard-workload-total"}]}}}}spec:replicas: 1selector:matchLabels:app.kubernetes.io/component: grafanaapp.kubernetes.io/name: grafanaapp.kubernetes.io/part-of: kube-prometheustemplate:metadata:creationTimestamp: nulllabels:app.kubernetes.io/component: grafanaapp.kubernetes.io/name: grafanaapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 7.5.4pod-template-hash: 65b64c79c6annotations:checksum/grafana-datasources: bff02b6fd55e414ce7cf08a5ea2a85e3kubesphere.io/restartedAt: '2022-09-28T05:39:39.838Z'logging.kubesphere.io/logsidecar-config: '{}'spec:volumes:- name: grafana-storagepersistentVolumeClaim:claimName: grafana-storage- name: grafana-datasourcessecret:secretName: grafana-datasourcesdefaultMode: 420- name: grafana-dashboardsconfigMap:name: grafana-dashboardsdefaultMode: 420- name: grafana-dashboard-apiserverconfigMap:name: grafana-dashboard-apiserverdefaultMode: 420- name: grafana-dashboard-cluster-totalconfigMap:name: grafana-dashboard-cluster-totaldefaultMode: 420- name: grafana-dashboard-controller-managerconfigMap:name: grafana-dashboard-controller-managerdefaultMode: 420- name: grafana-dashboard-k8s-resources-clusterconfigMap:name: grafana-dashboard-k8s-resources-clusterdefaultMode: 420- name: grafana-dashboard-k8s-resources-namespaceconfigMap:name: grafana-dashboard-k8s-resources-namespacedefaultMode: 420- name: grafana-dashboard-k8s-resources-nodeconfigMap:name: grafana-dashboard-k8s-resources-nodedefaultMode: 420- name: grafana-dashboard-k8s-resources-podconfigMap:name: grafana-dashboard-k8s-resources-poddefaultMode: 420- name: grafana-dashboard-k8s-resources-workloadconfigMap:name: grafana-dashboard-k8s-resources-workloaddefaultMode: 420- name: grafana-dashboard-k8s-resources-workloads-namespaceconfigMap:name: grafana-dashboard-k8s-resources-workloads-namespacedefaultMode: 420- name: grafana-dashboard-kubeletconfigMap:name: grafana-dashboard-kubeletdefaultMode: 420- name: grafana-dashboard-namespace-by-podconfigMap:name: grafana-dashboard-namespace-by-poddefaultMode: 420- name: grafana-dashboard-namespace-by-workloadconfigMap:name: grafana-dashboard-namespace-by-workloaddefaultMode: 420- name: grafana-dashboard-node-cluster-rsrc-useconfigMap:name: grafana-dashboard-node-cluster-rsrc-usedefaultMode: 420- name: grafana-dashboard-node-rsrc-useconfigMap:name: grafana-dashboard-node-rsrc-usedefaultMode: 420- name: grafana-dashboard-nodesconfigMap:name: grafana-dashboard-nodesdefaultMode: 420- name: grafana-dashboard-persistentvolumesusageconfigMap:name: grafana-dashboard-persistentvolumesusagedefaultMode: 420- name: grafana-dashboard-pod-totalconfigMap:name: grafana-dashboard-pod-totaldefaultMode: 420- name: grafana-dashboard-prometheus-remote-writeconfigMap:name: grafana-dashboard-prometheus-remote-writedefaultMode: 420- name: grafana-dashboard-prometheusconfigMap:name: grafana-dashboard-prometheusdefaultMode: 420- name: grafana-dashboard-proxyconfigMap:name: grafana-dashboard-proxydefaultMode: 420- name: grafana-dashboard-schedulerconfigMap:name: grafana-dashboard-schedulerdefaultMode: 420- name: grafana-dashboard-statefulsetconfigMap:name: grafana-dashboard-statefulsetdefaultMode: 420- name: grafana-dashboard-workload-totalconfigMap:name: grafana-dashboard-workload-totaldefaultMode: 420- name: grafana-defaults-iniconfigMap:name: grafana-defaults-inidefaultMode: 420containers:- name: grafanaimage: 'bytest-harbor.ur.com.cn/grafana/grafana:7.4.3'ports:- name: httpcontainerPort: 3000protocol: TCPresources:limits:cpu: 400mmemory: 200Mirequests:cpu: 100mmemory: 100MivolumeMounts:- name: grafana-storagemountPath: /var/lib/grafana- name: grafana-datasourcesmountPath: /etc/grafana/provisioning/datasources- name: grafana-dashboardsmountPath: /etc/grafana/provisioning/dashboards- name: grafana-dashboard-apiservermountPath: /grafana-dashboard-definitions/0/apiserver- name: grafana-dashboard-cluster-totalmountPath: /grafana-dashboard-definitions/0/cluster-total- name: grafana-dashboard-controller-managermountPath: /grafana-dashboard-definitions/0/controller-manager- name: grafana-dashboard-k8s-resources-clustermountPath: /grafana-dashboard-definitions/0/k8s-resources-cluster- name: grafana-dashboard-k8s-resources-namespacemountPath: /grafana-dashboard-definitions/0/k8s-resources-namespace- name: grafana-dashboard-k8s-resources-nodemountPath: /grafana-dashboard-definitions/0/k8s-resources-node- name: grafana-dashboard-k8s-resources-podmountPath: /grafana-dashboard-definitions/0/k8s-resources-pod- name: grafana-dashboard-k8s-resources-workloadmountPath: /grafana-dashboard-definitions/0/k8s-resources-workload- name: grafana-dashboard-k8s-resources-workloads-namespacemountPath: >-/grafana-dashboard-definitions/0/k8s-resources-workloads-namespace- name: grafana-dashboard-kubeletmountPath: /grafana-dashboard-definitions/0/kubelet- name: grafana-dashboard-namespace-by-podmountPath: /grafana-dashboard-definitions/0/namespace-by-pod- name: grafana-dashboard-namespace-by-workloadmountPath: /grafana-dashboard-definitions/0/namespace-by-workload- name: grafana-dashboard-node-cluster-rsrc-usemountPath: /grafana-dashboard-definitions/0/node-cluster-rsrc-use- name: grafana-dashboard-node-rsrc-usemountPath: /grafana-dashboard-definitions/0/node-rsrc-use- name: grafana-dashboard-nodesmountPath: /grafana-dashboard-definitions/0/nodes- name: grafana-dashboard-persistentvolumesusagemountPath: /grafana-dashboard-definitions/0/persistentvolumesusage- name: grafana-dashboard-pod-totalmountPath: /grafana-dashboard-definitions/0/pod-total- name: grafana-dashboard-prometheus-remote-writemountPath: /grafana-dashboard-definitions/0/prometheus-remote-write- name: grafana-dashboard-prometheusmountPath: /grafana-dashboard-definitions/0/prometheus- name: grafana-dashboard-proxymountPath: /grafana-dashboard-definitions/0/proxy- name: grafana-dashboard-schedulermountPath: /grafana-dashboard-definitions/0/scheduler- name: grafana-dashboard-statefulsetmountPath: /grafana-dashboard-definitions/0/statefulset- name: grafana-dashboard-workload-totalmountPath: /grafana-dashboard-definitions/0/workload-total- name: grafana-defaults-inimountPath: /usr/share/grafana/confreadinessProbe:httpGet:path: /api/healthport: httpscheme: HTTPtimeoutSeconds: 1periodSeconds: 10successThreshold: 1failureThreshold: 3terminationMessagePath: /dev/termination-logterminationMessagePolicy: FileimagePullPolicy: IfNotPresentrestartPolicy: AlwaysterminationGracePeriodSeconds: 30dnsPolicy: ClusterFirstnodeSelector:beta.kubernetes.io/os: linuxserviceAccountName: grafanaserviceAccount: grafanasecurityContext:runAsUser: 65534runAsNonRoot: truefsGroup: 65534schedulerName: default-schedulerstrategy:type: RollingUpdaterollingUpdate:maxUnavailable: 25%maxSurge: 25%revisionHistoryLimit: 10progressDeadlineSeconds: 600
kubesphere 模板配置

Gitlab 添加应用
填写回调地址:
http://grafana-k8s-test.ur.com.cn/login/gitlab
修改Grafana配置,启用Gitlab认证
默认配置文件里添加回调地址
[server]protocol = httproot_url = http://grafana-k8s-test.ur.com.cn
#################################### GitLab Auth #########################[auth.gitlab]enabled = trueallow_sign_up = trueclient_id = 73ccfdd396582e5f0f2dd2b0dc72c1a5b52bdeea814dc2e01a9e1ca06db91387client_secret = b0ec91792c29ff74dbd70280c0968b2b293288a71db8c9d113b8964ecb465ccascopes = apiauth_url = http://192.168.13.78/oauth/authorizetoken_url = http://192.168.13.78/oauth/tokenapi_url = http://192.168.13.78/api/v4allowed_domains =allowed_groups =[server]protocol = httproot_url = http://grafana-k8s-test.ur.com.cn

