Lazy loaded image
MariaDB on Kubernetes 部署实战
字数 1119阅读时长 3 分钟
2025-9-15
2025-9-14
type
status
date
slug
summary
tags
category
icon
password
环境说明
  • 操作系统:openEuler 22.03 (LTS-SP4)
  • Kubernetes 版本:v1.25.1
  • 容器运行时:Docker
  • 节点 IP:11.0.1.80
  • 应用名称:MariaDB 11.3.2
  • 命名空间:middleware

一、环境准备

1.1 验证 Kubernetes 集群状态

1.2 创建专用命名空间

1.3 验证 Docker 运行时


二、部署 MariaDB 服务

2.1 创建持久化存储 (PVC)

验证 PVC 状态:
重要提示
  • 若 PVC 未绑定,请检查 pixiu-localstorage 存储类配置
  • 确保节点有足够本地存储空间(至少 20Gi)

2.2 部署 MariaDB 应用


2.3 创建服务暴露端点


三、部署验证

3.1 检查资源状态

3.2 测试数据库连接

3.3 验证持久化存储


四、关键配置说明

配置项
说明
镜像仓库
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mariadb:11.3.2-jammy
华为云镜像加速
Root 密码
123456
生产环境必须修改
时区
Asia/Shanghai
匹配中国时区
存储大小
20Gi
PVC 请求容量
资源限制
CPU 500m / 内存 1Gi
防止单节点资源耗尽
Service 类型
NodePort
通过 30306 端口暴露服务

五、生产环境优化建议

5.1 安全加固

创建 Secret:

5.2 高可用配置(生产环境必需)

六、故障排查指南

常见问题解决方案

问题现象
诊断命令
解决方案
PVC 未绑定
kubectl describe pvc -n middleware mariadb-pvc
检查存储类配置/节点磁盘空间
Pod 启动失败
kubectl logs -n middleware <pod-name> --previous
检查密码格式/存储权限
连接拒绝
telnet 11.0.1.80 30306
检查防火墙:firewall-cmd --list-ports
数据丢失
ls /var/lib/kubelet/pods/<uid>/volumes/
验证 PV 挂载路径

openEuler 特定检查


七、维护操作

7.1 备份数据库

7.2 升级 MariaDB


重要安全提示
  1. 本文档使用测试密码 123456生产环境必须修改
  1. NodePort 暴露方式仅适用于测试环境,生产环境建议使用 Ingress + TLS
  1. 定期执行 mysql_secure_installation 安全加固
  1. 敏感信息务必通过 Kubernetes Secrets 管理
上一篇
Redis on Kubernetes 部署实战
下一篇
PostgreSQL on Kubernetes 部署实战