You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AKS中Bitnami MySQL Helm Chart持续重启问题求助

问题排查:Azure AKS中Bitnami MySQL Helm Chart(v9.14.1)异常重启及警告问题

问题梳理

  • 部署配置:Bitnami MySQL Helm Chart v9.14.1,主从架构(2个从节点),已启用metrics
  • 初始运行正常后出现mysql_native_password弃用警告,尝试GitHub Issue#18606修复无效
  • 升级Chart后Pod持续关闭,日志显示Received SHUTDOWN from user <via user signal>
  • 命名空间事件明确提示内存资源不足:mysql容器占用421440Ki(无资源请求配置),metrics容器占用15092Ki(无资源请求配置)
  • 启用自动扩缩容后Pod仍频繁重启,可访问mysql-metrics但不清楚重点观测指标

一、优先解决内存不足核心问题

1. 配置Pod资源请求与限制

Bitnami MySQL默认未设置资源请求,导致节点内存不足时被kubelet强制驱逐。在Helm values文件中添加以下配置:

primary:
  resources:
    requests:
      memory: "512Mi"
      cpu: "250m"
    limits:
      memory: "1Gi"
      cpu: "500m"
secondary:
  resources:
    requests:
      memory: "512Mi"
      cpu: "250m"
    limits:
      memory: "1Gi"
      cpu: "500m"
metrics:
  resources:
    requests:
      memory: "64Mi"
      cpu: "50m"
    limits:
      memory: "128Mi"
      cpu: "100m"

应用配置命令:

helm upgrade mysql bitnami/mysql -f your-values.yaml -n your-namespace
  • 原理:资源请求让调度器把Pod分配到有足够内存的节点;资源限制防止容器过度占用节点资源

2. 检查节点与Pod资源占用

用以下命令排查节点和Pod的资源使用情况:

# 查看节点资源详情
kubectl describe nodes
# 查看节点CPU/内存使用率
kubectl top nodes
# 查看命名空间内Pod资源占用
kubectl top pods -n your-namespace

确认是否有其他Pod占用过多内存,导致节点资源耗尽


二、处理mysql_native_password弃用警告

1. 全局设置默认认证插件

在Helm values中添加MySQL配置,强制全局使用caching_sha2_password:

primary:
  configuration: |
    [mysqld]
    default_authentication_plugin=caching_sha2_password
secondary:
  configuration: |
    [mysqld]
    default_authentication_plugin=caching_sha2_password

应用配置后重启所有MySQL Pod,检查警告是否消失

2. 更新现有用户的认证插件

登录MySQL实例,查看所有用户的认证方式:

SELECT user, host, plugin FROM mysql.user;

对仍使用mysql_native_password的用户执行更新:

ALTER USER 'your-user'@'%' IDENTIFIED WITH caching_sha2_password BY 'your-password';
FLUSH PRIVILEGES;

三、Pod频繁重启(SHUTDOWN信号)后续排查

1. 验证内存问题解决后的状态

内存不足是kubelet发送终止信号的核心原因,先解决资源配置问题后观察Pod是否稳定运行

2. 查看MySQL详细日志

通过命令实时查看主节点日志:

kubectl logs mysql-primary-0 -n your-namespace -f

重点关注:

  • 启动阶段的初始化错误、权限问题日志
  • 主从同步相关报错(如复制失败导致重启)
  • 内存耗尽时的OOM(Out of memory)日志

3. 利用mysql-metrics观测关键指标

端口转发访问metrics后,重点查看以下Prometheus指标:

  • mysql_global_status_uptime:Pod运行时长,确认是否仍频繁重启
  • mysql_global_status_threads_running:活跃线程数,排查是否有异常高负载
  • mysql_global_memory_total:MySQL总内存使用,确认是否接近资源限制
  • mysql_global_status_aborted_connects:连接失败次数,排查认证或网络问题
  • node_memory_MemAvailable_bytes(若采集节点指标):节点可用内存,确认资源是否充足

四、Chart升级注意事项

如果升级后出现异常,可尝试:

  1. 核对Chart版本与MySQL版本兼容性(Bitnami Chart发布说明会标注兼容的MySQL版本)
  2. 备份数据库后回滚到之前的Chart版本:
helm rollback mysql <revision-number> -n your-namespace
  1. 升级前先配置资源请求/限制,避免新版本默认资源需求更高导致内存不足

内容的提问来源于stack exchange,提问作者Øystein Seel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 12:16:04