请选择
进入手机版
|
继续访问电脑版
首页
论坛
Portal
登录
立即注册
用户名
Email
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
设为首页
收藏本站
开启辅助访问
切换到窄版
本版
文章
帖子
用户
道具
勋章
任务
门户
设置
切换到窄版
退出
腾讯QQ
微博登录
本文来自
服务器安全专区
0
人已关注
请添加对本版块的简短描述
精选帖子
【腾讯云】中小企业福利专场,多款刚需产品
0阅读
|
493人阅读
【腾讯云】推广者专属福利,新客户无门槛领
0阅读
|
437人阅读
【腾讯云】境外1核2G服务器低至2折,半价续
0阅读
|
329人阅读
【腾讯云】云产品限时秒杀,爆款1核2G云服
0阅读
|
435人阅读
查看:
199
|
回复:
0
安全专题 - www.aqzt.com - 安全运维与开源架构技术交流社区!
»
论坛
›
安全专题
›
服务器安全专区
›
查看内容
kube-prometheus 使用持久存储
[复制链接]
abc
当前离线
积分
6009
abc
199
0
abc
发表于 2020-12-2 17:59:48
|
显示全部楼层
|
阅读模式
kube-prometheus使用持久存储
prometheus operator部署参考:
https://blog.csdn.net/networken/article/details/85620793
持久存储配置参考:
https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/storage.md
prometheus默认使用empty-dir存储数据,pod迁移或重启监控数据将丢失,下面以nfs和local pv为例,持久化prometheus数据。
使用nfs存储
nfs server及动态提供存储参考:
https://blog.csdn.net/networken/article/details/86697018
下面是在部署kube-prometheus之前,修改官方manifests下的prometheus-prometheus.yaml内容,只在最后增加storage配置即可,注意指定storageClassName需要提前准备好。
# cat manifests/prometheus-prometheus.yaml
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
labels:
prometheus: k8s
name: k8s
namespace: monitoring
spec:
alerting:
alertmanagers:
- name: alertmanager-main
namespace: monitoring
port: web
image: willdockerhub/prometheus:v2.15.2
nodeSelector:
kubernetes.io/os: linux
podMonitorNamespaceSelector: {}
podMonitorSelector: {}
replicas: 2
resources:
requests:
memory: 400Mi
ruleSelector:
matchLabels:
prometheus: k8s
role: alert-rules
securityContext:
fsGroup: 2000
runAsNonRoot: true
runAsUser: 1000
serviceAccountName: prometheus-k8s
serviceMonitorNamespaceSelector: {}
serviceMonitorSelector: {}
version: v2.15.2
storage:
volumeClaimTemplate:
spec:
storageClassName: nfs-client
resources:
requests:
storage: 40Gi
修改后按照官方部署方式部署prometheus即可,部署完成后可以看到创建的pv和pvc:
查看绑定的pv和pvc
[root@master01 ~]# kubectl -n monitoring get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
prometheus-k8s-db-prometheus-k8s-0 Bound pvc-a8b091d5-3929-4a29-b89f-fe47022aee55 40Gi RWO nfs-client 9h
prometheus-k8s-db-prometheus-k8s-1 Bound pvc-1276a939-7d5d-43b9-ade9-ae0ef4108ecc 40Gi RWO nfs-client 9h
[root@master01 ~]# kubectl -n monitoring get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-1276a939-7d5d-43b9-ade9-ae0ef4108ecc 40Gi RWO Delete Bound monitoring/prometheus-k8s-db-prometheus-k8s-1 nfs-client 9h
pvc-a8b091d5-3929-4a29-b89f-fe47022aee55 40Gi RWO Delete Bound monitoring/prometheus-k8s-db-prometheus-k8s-0 nfs-client 9h
[root@master01 ~]#
删除pvc后保留pv需要更改pv回收策略为Retain:
kubectl patch pv <your-pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
使用local pv
创建storageclass yaml文件
cat > promethues-sc.yaml <kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
EOF
创建storage class
kubectl apply -f prometheus-sc.yaml
定义prometheus配置,同样修改 manifests/prometheus-prometheus.yaml文件,然后按照正常流程部署kube-prometheus即可。
# cat manifests/prometheus-prometheus.yaml
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
labels:
prometheus: k8s
name: k8s
namespace: monitoring
spec:
alerting:
alertmanagers:
- name: alertmanager-main
namespace: monitoring
port: web
image: willdockerhub/prometheus:v2.15.2
nodeSelector:
kubernetes.io/os: linux
podMonitorNamespaceSelector: {}
podMonitorSelector: {}
replicas: 2
resources:
requests:
memory: 400Mi
ruleSelector:
matchLabels:
prometheus: k8s
role: alert-rules
securityContext:
fsGroup: 2000
runAsNonRoot: true
runAsUser: 1000
serviceAccountName: prometheus-k8s
serviceMonitorNamespaceSelector: {}
serviceMonitorSelector: {}
version: v2.15.2
storage:
volumeClaimTemplate:
spec:
selector:
matchLabels:
app: prometheus
storageClassName: local-storage
resources:
requests:
storage: 20Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: prom-local-pv-0
labels:
app: prometheus
spec:
capacity:
storage: 20Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /data/prometheus/data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node01
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: prom-local-pv-1
labels:
app: prometheus
spec:
capacity:
storage: 20Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /data/prometheus/data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node02
手动在pv指定的节点中创建挂载目录
mkdir -p /data/prometheus/data
部署完成后查看创建的pvc和pv
[root@master01 ~]# kubectl -n monitoring get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
prometheus-k8s-db-prometheus-k8s-0 Bound prom-local-pv-1 20Gi RWO local-storage 42m
prometheus-k8s-db-prometheus-k8s-1 Bound prom-local-pv-0 20Gi RWO local-storage 42m
[root@master01 ~]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
prom-local-pv-0 20Gi RWO Retain Bound monitoring/prometheus-k8s-db-prometheus-k8s-1 local-storage 42m
prom-local-pv-1 20Gi RWO Retain Bound monitoring/prometheus-k8s-db-prometheus-k8s-0 local-storage 42m
复制代码
https://www.it610.com/article/1288641746128936960.htm
https://blog.csdn.net/networken/article/details/106381712
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表