Краткое описание проблемы:
Я следую инструкции Kubernetes, чтобы настроить образец кластера Cassandra . Кластер запущен и работает, и я хотел бы добавить второй том для каждого узла, чтобы попытаться включить резервные копии для Cassandra, которые будут храниться на отдельном томе.
Моя попытка найти решение :
Я попытался отредактировать мой файл cassandra-statefulset.yaml , добавив новую запись volumeMounts
и volumeClaimTemplates
и применив ее повторно, но получил следующее сообщение об ошибке:
$ kubectl apply -f cassandra-statefulset.yaml
storageclass.storage.k8s.io/fast unchanged
The StatefulSet "cassandra" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden
Затем я попытался включить непрерывные обновления и исправить свою конфигурацию, следуя документации, приведенной здесь: https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/
$ kubectl patch statefulset cassandra -p '{"spec":{"updateStrategy":{"type":"RollingUpdate"}}}'
statefulset.apps/cassandra patched (no change)
My cassandra-backup-patch.yaml
:
spec:
template:
spec:
containers:
volumeMounts:
- name: cassandra-backup
mountPath: /cassandra_backup
volumeClaimTemplates:
- metadata:
name: cassandra-backup
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: fast
resources:
requests:
storage: 1Gi
Однако это привело к следующей ошибке:
$ kubectl patch statefulset cassandra --patch "$(cat cassandra-backup-patch.yaml)"
The request is invalid: patch: Invalid value: "map[spec:map[template:map[spec:map[containers:map[volumeMounts:[map[mountPath:/cassandra_backup name:cassandra-backup]]]]] volumeClaimTemplates:[map[metadata:map[name:cassandra-backup] spec:map[accessModes:[ReadWriteOnce] resources:map[requests:map[storage:1Gi]] storageClassName:fast]]]]]": cannot restore slice from map
Может ли кто-нибудь указать мне правильный способ добавления дополнительного тома для каждого узла или объяснить, почему исправление не работает? Я впервые использую Kubernetes, поэтому мой подход может быть совершенно неверным. Любые комментарии или помощь очень приветствуются, заранее спасибо.