使用 Helm 将 MariaDB 部署到集群以 FORBIDDEN 错误结束

问题描述 投票:0回答:2

我正在 MacBook(M2 芯片)上运行的 k8s 集群(Docker 桌面版)上部署 MariaDB。由于M2芯片是ARM64架构,所以我尝试寻找匹配的MariaDB镜像。

我找到了这个.

所以,我使用 Helm 来部署它:

  1. 添加 helm 仓库
helm repo add groundhog2k https://groundhog2k.github.io/helm-charts/
  1. 安装 MariaDB:
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"

但是我收到这个错误:

UPGRADE FAILED: cannot patch \"my-local-cluster\" with kind StatefulSet: StatefulSet.apps \"my-local-cluster\" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden"

为什么会这样以及如何解决它?

kubernetes mariadb kubernetes-helm
2个回答
0
投票

似乎 Helm 正在尝试升级而不是安装图表,因为您使用了

helm upgrade
而不是
helm install
。就像错误所说的那样,禁止修补列出的字段以外的任何字段,但是当您使用
helm upgrade
时,我认为它会抛出API。您之前可能已经部署过它,而
--install
正在搞砸它,我不完全确定。

我建议改用

helm install
,看看是否能解决问题。


0
投票

我认为您在 helm 之外应用了同名的 statefulset(sts)。如果您使用

helm
应用 sts,您可以找到如下标签:

  labels:
    app.kubernetes.io/managed-by: Helm

只需删除 helm 不管理的 sts 并再次运行

helm upgrade
.

© www.soinside.com 2019 - 2024. All rights reserved.