蛮子哥 蛮子哥
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • ArgoCD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

蛮子哥

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • ArgoCD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • ansible系列文章

  • Kubernetes笔记

    • 安装篇-kubeadm
    • k8s入门
    • k8s安装篇二进制
    • k8s面试题
    • kubernetes(k8s)yaml文件详解
    • k8s报错小结
    • Kubernetes 安装配置ingress controller
    • cka考试真题
    • ingress配置证书
    • cka考试作业
    • k8s部署java项目
    • jenkins脚本式流水线部署k8s项目实例一
    • helm v3安装并创建例子
    • 使用helm将本地部署文件上传到harbor chart上
    • helm公共仓库创建
    • helm适应minio作为私有仓库
    • helm release使用说明
    • kubernetes核心概念
    • kubectl使用技巧
    • kubernetes卷的几种类型
    • kubernetes安全框架
    • 云原生-什么是HPA和PDB、VPA
    • k8s部署php项目示例
    • 配置kubeconfig 文件访问 Kubernetes 集群
    • configmap配置的几种方式
    • k8s配置go服务
    • k8s部署java项目
    • kubernetes部署prometheus监控
    • kubernetes部署elk日志系统
    • kubernetes环境devops流水线
    • kubernetes高阶技能必备的工具
    • deployment中使用configmap、secret的方式
    • 业务pod 飘移pending排查分析
    • debian 12安装kubernetes
    • istio入门
    • kubernetes证书续签到100年
    • kubernetes网络模式
    • etcd的备份和还原
    • Kubernetes 安装和配置 NFS 存储卷
    • VictoriaLogs集群采集Kubernetes Pod日志
    • 解决容器时区问题
    • 日志采集操作示例
    • operator 部署 VictoriaMetrics
    • grafana高可用部署
  • elk

  • jenkins

  • GitLabCI_CD

  • AI编程

  • 提示词

  • ArgoCD

  • 专题
  • Kubernetes笔记
蛮子哥
2026-05-26

grafana高可用部署

# mysql安装

在数据库主机执行,docker-compose.yaml文件

version: '3.9'

services:
  mysql:
    image: docker.cnb.cool/zzppjj/docker-images/mysql:8.0.39
    container_name: mysql8
    restart: always

    ports:
      - "3306:3306"

    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: "2023WqGhsd"
      MYSQL_DATABASE: app_db
      MYSQL_USER: app_user
      MYSQL_PASSWORD: "App123456"

    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci

    volumes:
      - ./data:/var/lib/mysql
      - ./logs:/var/log/mysql
      - ./conf:/etc/mysql/conf.d

    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-p2023WqGhsd"]
      interval: 10s
      timeout: 5s
      retries: 10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

创建数据库

docker exec -it mysql8 mysql -uroot -p'2023WqGhsd'
create database grafana;
1
2

将宿主机(物理机/虚拟机)上的 MySQL 提供给集群内部 Pod 使用

推荐方案Service + Endpoints(企业最常用)

这是最标准、最稳定的方法。

原理:

Pod --> Kubernetes Service --> Endpoints --> 外部 MySQL IP
1

这样你的应用只需要连接:

mysql.default.svc.cluster.local
1

不用关心真实 IP。

创建service

apiVersion: v1
kind: Service
metadata:
  name: external-mysql
  namespace: default
spec:
  ports:
    - port: 3306
      targetPort: 3306
1
2
3
4
5
6
7
8
9

创建Endpoints

apiVersion: v1
kind: Endpoints
metadata:
  name: external-mysql
  namespace: default
subsets:
  - addresses:
      - ip: 192.168.51.51
    ports:
      - port: 3306
1
2
3
4
5
6
7
8
9
10

# 创建headless service

#先创建命名空间
kubectl create ns monitoring
#headless.yaml
apiVersion: v1
kind: Service
metadata:
  name: monitoring-grafana-headless
  namespace: monitoring
spec:
  clusterIP: None
  ports:
  - name: http-web
    port: 3000
    protocol: TCP
    targetPort: 3000
  - name: alert
    port: 9094
    protocol: TCP
    targetPort: 9094
  selector:
    app.kubernetes.io/instance: monitoring
    app.kubernetes.io/name: grafana
  type: ClusterIP
  
# 执行安装
kubectl apply -f headless.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# helm chart

replicas: 2
image:
  repository: grafana/grafana
  registry: "docker.1ms.run"
  tag: latest
  pullPolicy: IfNotPresent
defaultDashboardsTimezone: browser
grafana.ini:
  unified_alerting:
    enabled: true
    ha_peers: 'monitoring-grafana-headless.monitoring.svc.cluster.local:9094'
  alerting:
    enabled: false
  database:
    url: 'mysql://root:2023WqGhsd@external-mysql.default.svc.cluster.local:3306/grafana'
  server:
    root_url: "https://grafana.zzppjj.top"
  paths:
    data: /var/lib/grafana/
    logs: /var/log/grafana
    plugins: /var/lib/grafana/plugins
    provisioning: /etc/grafana/provisioning
  analytics:
    check_for_updates: true
  log:
    mode: console
  grafana_net:
    url: https://grafana.net
    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 安装

先更新helm的repo

helm repo add grafana "https://helm-charts.itboon.top/grafana" --force-update
helm repo update
1
2

执行安装

helm install grafana grafana/grafana   -n monitoring   --create-namespace   -f values.yaml
1

参考链接1 (opens new window)

参考链接2 (opens new window)

微信 支付宝
上次更新: 2026/05/26, 13:41:27

← operator 部署 VictoriaMetrics elk安装→

最近更新
01
VictoriaLogs集群采集Kubernetes Pod日志
05-24
02
kubernetes证书续签到100年
05-04
03
istio入门
04-29
更多文章>
Theme by Vdoing | Copyright © 2019-2026 | 点击查看十年之约 | 鄂ICP备2024072800号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式