24. 安装使用grafana
24. 安装使用grafana一、安装grafana1. 准备一块存储准备一块存储供grafana容器挂载,以持久化自己的数据,否则当grafana容器重启或漂移时,原数据将会丢失。此处我们通过nfs做一个网络磁盘(nfs的使用此处不进行扩展)我们在172.10.10.100节点上创建nfs磁盘mkdir /data/K8SVOLUMESvi /etc/exports/data/K8SVOLUME
·
24. 安装使用grafana
一、安装grafana
1. 准备一块存储
准备一块存储供grafana容器挂载,以持久化自己的数据,否则当grafana容器重启或漂移时,原数据将会丢失。
此处我们通过nfs做一个网络磁盘(nfs的使用此处不进行扩展)
我们在172.10.10.100
节点上创建nfs磁盘
mkdir /data/K8SVOLUMES
vi /etc/exports
/data/K8SVOLUMES *(rw,sync,no_wdelay,no_root_squash)
no_root_squash:当登录 NFS 主机使用共享目录的使用者是 root 时,其权限将被转换成为匿名使用者,通常它的 UID 与 GID,都会变成 nobody 身份
systemctl restart nfs
检查
➜ ~ showmount 172.10.10.100 -e
Export list for 172.10.10.100:
/data/K8SVOLUMES *
/data/NFS_SHARE 172.10.10.0/24
2. 创建PV和PVC资源
- PV 的全称是:PersistentVolume(持久化卷),是对底层的共享存储的一种抽象,PV 由管理员进行创建和配置,它和具体的底层的共享存储技术的实现方式有关,比如 Ceph、GlusterFS、NFS 等,都是通过插件机制完成与共享存储的对接。
- PVC 的全称是:PersistentVolumeClaim(持久化卷声明),PVC 是用户存储的一种声明,PVC 和 Pod 比较类似,Pod 消耗的是节点,PVC 消耗的是 PV 资源,Pod 可以请求 CPU 和内存,而 PVC 可以请求特定的存储空间和访问模式。对于真正使用存储的用户不需要关心底层的存储实现细节,只需要直接使用 PVC 即可。
grafana-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: grafana
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
server: 172.10.10.100
path: /data/K8SVOLUMES
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana
namespace: kube-mon
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
namespace: kube-mon 在前面搭建prometheus时创建了
3. 创建grafana k8s资源
grafana-dp.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
namespace: kube-mon
labels:
app: grafana
spec:
revisionHistoryLimit: 5
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
securityContext:
fsGroup: 472
runAsUser: 472
containers:
- image: harbor.hzwod.com/public/grafana:7.5.5
name: grafana
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3000
name: grafana
env:
- name: GF_SECURITY_ADMIN_USER
value: admin
- name: GF_SECURITY_ADMIN_PASSWORD
value: admin
readinessProbe:
failureThreshold: 10
httpGet:
path: /api/health
port: 3000
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 30
livenessProbe:
failureThreshold: 3
httpGet:
path: /api/health
port: 3000
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
cpu: 100m
memory: 256Mi
requests:
cpu: 100m
memory: 256Mi
volumeMounts:
- mountPath: /var/lib/grafana
subPath: grafana
name: storage
# 需配置pvc资源配合使用挂载
volumes:
- name: storage
persistentVolumeClaim:
claimName: grafana
4. 创建svc访问grafana
grafana-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: grafana
namespace: kube-mon
labels:
app: grafana
spec:
type: LoadBalancer
selector:
app: grafana
ports:
- port: 80
targetPort: 3000
nodePort: 8002
二、配置prometheus数据源
-
查看prometheus集群服务
-
grafana配置数据源
http://prometheus:9090
这里的prometheus是coreDns中的域名,若非同namespace下则域名需添加上namespace
当然也是能添加哎其他数据源的,如前几张我们搭建heapster时用的influxDB
更多推荐
已为社区贡献9条内容
所有评论(0)