当前位置: 代码迷 >> 综合 >> 进阶之路:从零到一在k8s上部署高可用prometheus —— minio
  详细解决方案

进阶之路:从零到一在k8s上部署高可用prometheus —— minio

热度:45   发布时间:2023-11-27 00:50:22.0

目录

  • 导航
  • 前言
  • 相关yaml文件
    • minio-service.yaml
    • minio-service-web.yaml
    • minio.yaml
  • 部署
  • 验证

导航

进阶之路:从零到一在k8s上部署高可用prometheus —— 总览
进阶之路:从零到一在k8s上部署高可用prometheus —— 准备工作
进阶之路:从零到一在k8s上部署高可用prometheus —— exporter
进阶之路:从零到一在k8s上部署高可用prometheus —— consul
进阶之路:从零到一在k8s上部署高可用prometheus —— prometheus-operator
进阶之路:从零到一在k8s上部署高可用prometheus —— prometheus
进阶之路:从零到一在k8s上部署高可用prometheus —— alertmanager
进阶之路:从零到一在k8s上部署高可用prometheus —— minio
进阶之路:从零到一在k8s上部署高可用prometheus —— thanos receive、thanos query

前言

经过前面几章的部署,我们已经搭建起了一套可用的监控平台(没错,prometheus + alertmanager的组合已经可以实现监控的基本要求了)。但是我们之前部署的三节点prometheus只是三个采集同样数据的离散节点而已,各个节点之间没有关联,困扰我们的单点故障问题并没有解决,接下来我们将通过thanos receive着手解决这一问题。
thanos receive的热数据是保存在本地的tsdb里的,但是冷数据目前只支持通过对象存储来持久化,所以本章我们先来通过minio提供一个简单的对象存储服务。

相关yaml文件

minio-service.yaml

apiVersion: v1
kind: Service
metadata:name: minio-ifcloud
spec:type: ClusterIPports:- name: apiport: 9000targetPort: 9000protocol: TCP- name: consoleport: 9001targetPort: 9001protocol: TCPselector:app: minio-ifcloud

minio-service-web.yaml

kind: Service
apiVersion: v1
metadata:name: minio-ifcloud-weblabels:app: minio-ifcloud-web
spec:ports:- name: http-webprotocol: TCPport: 9001targetPort: 9001nodePort: 30006selector:app: minio-ifcloudtype: NodePortsessionAffinity: None

minio.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: minio-ifcloud
spec:selector:matchLabels:app: minio-ifcloudstrategy:type: Recreatetemplate:metadata:labels:app: minio-ifcloudspec:containers:- name: minio-ifcloudimage: minio/miniocommand:- /bin/sh- -c- "mkdir -p /storage/thanos && /usr/bin/minio server /storage --console-address ':9001'"env:- name: MINIO_ACCESS_KEYvalue: "minio" # 默认用户名- name: MINIO_SECRET_KEYvalue: "Zhu@88jie" # 默认密码ports:- name: apicontainerPort: 9000protocol: TCP- name: consolecontainerPort: 9001protocol: TCPvolumeMounts:- name: storagemountPath: "/storage"volumes:- name: storageemptyDir: {
    }

部署

# 将以上文件放在目录/yaml/minio下
# 执行以下命令验证yaml文件正确性
kubectl apply -f /yaml/minio -n prom-ha --dry-run=client# 验证无误后执行以下命令创建相关k8s资源
kubectl apply -f /yaml/minio -n prom-ha

验证

部署完成后访问http://192.168.25.80:30006,输入用户名密码后看到以下内容即证明部署成功(数据不同属于正常现象)。

http://192.168.25.80:30006/