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

M2芯片Docker Desktop集群Helm部署MariaDB遇CrashLoopBackOff问题

问题描述

在搭载ARM64架构M2芯片的MacBook的Docker Desktop集群中,使用groundhog2k/mariadb Helm Chart部署MariaDB:

  1. 添加Helm仓库:
helm repo add groundhog2k https://groundhog2k.github.io/helm-charts/
  1. 执行安装命令:
helm upgrade --install my-local-cluster groundhog2k/mariadb \
      --version 0.8.0 \
      --namespace mariadb \
      --set auth.rootPassword="my-root-pwd" \
      --set master.persistence.size=10Gi \
      --set auth.username="my-usr-name" \
      --set auth.password="my-pwd"

部署完成后MariaDB pod处于CrashLoopBackOff状态,执行k describe pod <mariadb pod name>得到如下信息:

Name:             mariadb-local-0
Namespace:        mariadb
Priority:         0
Service Account:  default
Node:             docker-desktop/192.168.65.4
Start Time:       Wed, 08 Mar 2023 23:57:53 +0200
Labels:           app.kubernetes.io/instance=mariadb-local
                  app.kubernetes.io/name=mariadb
                  controller-revision-hash=mariadb-local-7ff6bf79d4
                  statefulset.kubernetes.io/pod-name=mariadb-local-0
Annotations:      checksum/customconfig: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
                  checksum/customscripts: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
                  checksum/scripts: 671b226b2c464f6559c47550c781cec6fe270ace6b56430db7e2867584b8658a
                  checksum/secureconfig: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
Status:           Running
IP:               10.1.0.70
IPs:
  IP:           10.1.0.70
Controlled By:  StatefulSet/mariadb-local
Init Containers:
  mariadb-init:
    Container ID:  docker://41b3ed6d7875f2245c0515cfe8b255b11e9361a1a0f769a8134abf63d443f57c
    Image:         docker.io/mariadb:10.11.2
    Image ID:      docker-pullable://mariadb@sha256:ec97b993b11423a5b60448c85e01e3f696aaf6dfbf6f83c12d03bb02563f134e
    Port:          <none>
    Host Port:     <none>
    Command:
      /initscripts/init.sh
    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Wed, 08 Mar 2023 23:58:16 +0200
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /configs from configs (rw)
      /initscripts from initscripts (rw)
      /scripts from scripts (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-7gx5p (ro)
Containers:
  mariadb:
    Container ID:   docker://16e35d1eb9165dc36b9015c19ba57d3a18b8f9244aa495324a12db5d32ebb5eb
    Image:          docker.io/mariadb:10.11.2
    Image ID:       docker-pullable://mariadb@sha256:ec97b993b11423a5b60448c85e01e3f696aaf6dfbf6f83c12d03bb02563f134e
    Port:           3306/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Thu, 09 Mar 2023 14:10:57 +0200
      Finished:     Thu, 09 Mar 2023 14:10:57 +0200
    Ready:          False
    Restart Count:  85
    Liveness:       exec [bash -c mysqladmin status -uroot -p$MARIADB_ROOT_PASSWORD] delay=120s timeout=5s period=10s #success=1 #failure=3
    Readiness:      exec [bash -c mysqladmin status -uroot -p$MARIADB_ROOT_PASSWORD] delay=30s timeout=5s period=10s #success=1 #failure=3
    Startup:        exec [bash -c mysqladmin status -uroot -p$MARIADB_ROOT_PASSWORD] delay=10s timeout=5s period=10s #success=1 #failure=30
    Environment:    <none>
    Mounts:
      /docker-entrypoint-initdb.d from scripts (rw)
      /etc/mysql/conf.d from configs (rw)
      /tmp from tmp-volume (rw)
      /var/lib/mysql from db-volume (rw)
      /var/run/mysqld from tmp-volume (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-7gx5p (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  tmp-volume:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  configs:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  scripts:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  initscripts:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      mariadb-local-scripts
    Optional:  false
  db-volume:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  kube-api-access-7gx5p:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason   Age                    From     Message
  ----     ------   ----                   ----     -------
  Warning  BackOff  4m3s (x1707 over 14h)  kubelet  Back-off restarting failed container

可能的故障原因

  • 缺少必要环境变量:从Pod描述可见,MariaDB容器的Environment为空,而MariaDB镜像启动时需要MARIADB_ROOT_PASSWORD、MARIADB_USER、MARIADB_PASSWORD等环境变量完成初始化。你通过Helm设置了auth.rootPassword等参数,但Chart未正确将这些参数注入容器环境变量,导致数据库启动失败。
  • 持久化配置未生效:你设置了master.persistence.size=10Gi,但Pod中的db-volume为EmptyDir临时目录,说明Chart未启用持久化存储。通常需要显式设置master.persistence.enabled=true,同时Docker Desktop集群需配置可用存储类,否则持久化卷无法创建,可能引发数据库初始化异常。
  • 镜像架构兼容性问题:尽管你提到Chart适配ARM64,但使用的mariadb:10.11.2镜像可能存在ARM64架构兼容性问题。可以检查镜像是否支持ARM64,或指定明确的ARM64镜像标签(如mariadb:10.11.2-arm64v8)。
  • 探针依赖未满足:容器的存活、就绪探针使用mysqladmin status -uroot -p$MARIADB_ROOT_PASSWORD,但环境变量缺失导致探针执行失败,进一步加剧CrashLoopBackOff状态。不过这是容器启动失败后的连锁反应,核心原因仍是容器本身无法正常启动。

内容的提问来源于stack exchange,提问作者user842225

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:34:58