我正在 MacBook(M2 芯片)上运行的 k8s 集群(Docker 桌面版)上部署 MariaDB。由于M2芯片是ARM64架构,所以我尝试寻找匹配的MariaDB镜像。
我找到了这个.
所以,我使用 Helm 来部署它:
helm repo add groundhog2k https://groundhog2k.github.io/helm-charts/
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"
为什么会这样以及如何解决它?
似乎 Helm 正在尝试升级而不是安装图表,因为您使用了
helm upgrade
而不是 helm install
。就像错误所说的那样,禁止修补列出的字段以外的任何字段,但是当您使用helm upgrade
时,我认为它会抛出API。您之前可能已经部署过它,而--install
正在搞砸它,我不完全确定。
我建议改用
helm install
,看看是否能解决问题。
我认为您在 helm 之外应用了同名的 statefulset(sts)。如果您使用
helm
应用 sts,您可以找到如下标签:
labels:
app.kubernetes.io/managed-by: Helm
只需删除 helm 不管理的 sts 并再次运行
helm upgrade
.