Grafana 初始化配置挂载出来
kind: Deployment
apiVersion: apps/v1
metadata:
name: grafana
namespace: kubesphere-monitoring-system
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
annotations:
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: 1
selector:
matchLabels:
app.kubernetes.io/component: grafana
app.kubernetes.io/name: grafana
app.kubernetes.io/part-of: kube-prometheus
template:
metadata:
creationTimestamp: null
labels:
app.kubernetes.io/component: grafana
app.kubernetes.io/name: grafana
app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 7.5.4
pod-template-hash: 65b64c79c6
annotations:
checksum/grafana-datasources: bff02b6fd55e414ce7cf08a5ea2a85e3
kubesphere.io/restartedAt: '2022-09-28T05:39:39.838Z'
logging.kubesphere.io/logsidecar-config: '{}'
spec:
volumes:
- name: grafana-storage
persistentVolumeClaim:
claimName: grafana-storage
- name: grafana-datasources
secret:
secretName: grafana-datasources
defaultMode: 420
- name: grafana-dashboards
configMap:
name: grafana-dashboards
defaultMode: 420
- name: grafana-dashboard-apiserver
configMap:
name: grafana-dashboard-apiserver
defaultMode: 420
- name: grafana-dashboard-cluster-total
configMap:
name: grafana-dashboard-cluster-total
defaultMode: 420
- name: grafana-dashboard-controller-manager
configMap:
name: grafana-dashboard-controller-manager
defaultMode: 420
- name: grafana-dashboard-k8s-resources-cluster
configMap:
name: grafana-dashboard-k8s-resources-cluster
defaultMode: 420
- name: grafana-dashboard-k8s-resources-namespace
configMap:
name: grafana-dashboard-k8s-resources-namespace
defaultMode: 420
- name: grafana-dashboard-k8s-resources-node
configMap:
name: grafana-dashboard-k8s-resources-node
defaultMode: 420
- name: grafana-dashboard-k8s-resources-pod
configMap:
name: grafana-dashboard-k8s-resources-pod
defaultMode: 420
- name: grafana-dashboard-k8s-resources-workload
configMap:
name: grafana-dashboard-k8s-resources-workload
defaultMode: 420
- name: grafana-dashboard-k8s-resources-workloads-namespace
configMap:
name: grafana-dashboard-k8s-resources-workloads-namespace
defaultMode: 420
- name: grafana-dashboard-kubelet
configMap:
name: grafana-dashboard-kubelet
defaultMode: 420
- name: grafana-dashboard-namespace-by-pod
configMap:
name: grafana-dashboard-namespace-by-pod
defaultMode: 420
- name: grafana-dashboard-namespace-by-workload
configMap:
name: grafana-dashboard-namespace-by-workload
defaultMode: 420
- name: grafana-dashboard-node-cluster-rsrc-use
configMap:
name: grafana-dashboard-node-cluster-rsrc-use
defaultMode: 420
- name: grafana-dashboard-node-rsrc-use
configMap:
name: grafana-dashboard-node-rsrc-use
defaultMode: 420
- name: grafana-dashboard-nodes
configMap:
name: grafana-dashboard-nodes
defaultMode: 420
- name: grafana-dashboard-persistentvolumesusage
configMap:
name: grafana-dashboard-persistentvolumesusage
defaultMode: 420
- name: grafana-dashboard-pod-total
configMap:
name: grafana-dashboard-pod-total
defaultMode: 420
- name: grafana-dashboard-prometheus-remote-write
configMap:
name: grafana-dashboard-prometheus-remote-write
defaultMode: 420
- name: grafana-dashboard-prometheus
configMap:
name: grafana-dashboard-prometheus
defaultMode: 420
- name: grafana-dashboard-proxy
configMap:
name: grafana-dashboard-proxy
defaultMode: 420
- name: grafana-dashboard-scheduler
configMap:
name: grafana-dashboard-scheduler
defaultMode: 420
- name: grafana-dashboard-statefulset
configMap:
name: grafana-dashboard-statefulset
defaultMode: 420
- name: grafana-dashboard-workload-total
configMap:
name: grafana-dashboard-workload-total
defaultMode: 420
- name: grafana-defaults-ini
configMap:
name: grafana-defaults-ini
defaultMode: 420
containers:
- name: grafana
image: 'bytest-harbor.ur.com.cn/grafana/grafana:7.4.3'
ports:
- name: http
containerPort: 3000
protocol: TCP
resources:
limits:
cpu: 400m
memory: 200Mi
requests:
cpu: 100m
memory: 100Mi
volumeMounts:
- name: grafana-storage
mountPath: /var/lib/grafana
- name: grafana-datasources
mountPath: /etc/grafana/provisioning/datasources
- name: grafana-dashboards
mountPath: /etc/grafana/provisioning/dashboards
- name: grafana-dashboard-apiserver
mountPath: /grafana-dashboard-definitions/0/apiserver
- name: grafana-dashboard-cluster-total
mountPath: /grafana-dashboard-definitions/0/cluster-total
- name: grafana-dashboard-controller-manager
mountPath: /grafana-dashboard-definitions/0/controller-manager
- name: grafana-dashboard-k8s-resources-cluster
mountPath: /grafana-dashboard-definitions/0/k8s-resources-cluster
- name: grafana-dashboard-k8s-resources-namespace
mountPath: /grafana-dashboard-definitions/0/k8s-resources-namespace
- name: grafana-dashboard-k8s-resources-node
mountPath: /grafana-dashboard-definitions/0/k8s-resources-node
- name: grafana-dashboard-k8s-resources-pod
mountPath: /grafana-dashboard-definitions/0/k8s-resources-pod
- name: grafana-dashboard-k8s-resources-workload
mountPath: /grafana-dashboard-definitions/0/k8s-resources-workload
- name: grafana-dashboard-k8s-resources-workloads-namespace
mountPath: >-
/grafana-dashboard-definitions/0/k8s-resources-workloads-namespace
- name: grafana-dashboard-kubelet
mountPath: /grafana-dashboard-definitions/0/kubelet
- name: grafana-dashboard-namespace-by-pod
mountPath: /grafana-dashboard-definitions/0/namespace-by-pod
- name: grafana-dashboard-namespace-by-workload
mountPath: /grafana-dashboard-definitions/0/namespace-by-workload
- name: grafana-dashboard-node-cluster-rsrc-use
mountPath: /grafana-dashboard-definitions/0/node-cluster-rsrc-use
- name: grafana-dashboard-node-rsrc-use
mountPath: /grafana-dashboard-definitions/0/node-rsrc-use
- name: grafana-dashboard-nodes
mountPath: /grafana-dashboard-definitions/0/nodes
- name: grafana-dashboard-persistentvolumesusage
mountPath: /grafana-dashboard-definitions/0/persistentvolumesusage
- name: grafana-dashboard-pod-total
mountPath: /grafana-dashboard-definitions/0/pod-total
- name: grafana-dashboard-prometheus-remote-write
mountPath: /grafana-dashboard-definitions/0/prometheus-remote-write
- name: grafana-dashboard-prometheus
mountPath: /grafana-dashboard-definitions/0/prometheus
- name: grafana-dashboard-proxy
mountPath: /grafana-dashboard-definitions/0/proxy
- name: grafana-dashboard-scheduler
mountPath: /grafana-dashboard-definitions/0/scheduler
- name: grafana-dashboard-statefulset
mountPath: /grafana-dashboard-definitions/0/statefulset
- name: grafana-dashboard-workload-total
mountPath: /grafana-dashboard-definitions/0/workload-total
- name: grafana-defaults-ini
mountPath: /usr/share/grafana/conf
readinessProbe:
httpGet:
path: /api/health
port: http
scheme: HTTP
timeoutSeconds: 1
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
nodeSelector:
beta.kubernetes.io/os: linux
serviceAccountName: grafana
serviceAccount: grafana
securityContext:
runAsUser: 65534
runAsNonRoot: true
fsGroup: 65534
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
kubesphere 模板配置
Gitlab 添加应用
填写回调地址:
http://grafana-k8s-test.ur.com.cn/login/gitlab
修改Grafana配置,启用Gitlab认证
默认配置文件里添加回调地址
[server]
protocol = http
root_url = http://grafana-k8s-test.ur.com.cn
#################################### GitLab Auth #########################
[auth.gitlab]
enabled = true
allow_sign_up = true
client_id = 73ccfdd396582e5f0f2dd2b0dc72c1a5b52bdeea814dc2e01a9e1ca06db91387
client_secret = b0ec91792c29ff74dbd70280c0968b2b293288a71db8c9d113b8964ecb465cca
scopes = api
auth_url = http://192.168.13.78/oauth/authorize
token_url = http://192.168.13.78/oauth/token
api_url = http://192.168.13.78/api/v4
allowed_domains =
allowed_groups =
[server]
protocol = http
root_url = http://grafana-k8s-test.ur.com.cn