我已经用stable helm chart部署了cockroachdb。 不幸的是,我没有意识到默认的conf会给我很小的1Gi,无法调整大小的持久卷。 我也没有意识到cockroachdb正在使用大量空间来按时间序列进行自我监视。
现在,我的持久卷已满,我的cockroachdb pod崩溃了:
log: exiting because of error: log: cannot create log: open /cockroach/cockroach-data/logs/cockroach.ckdb-cockroachdb-0.root.2018-09-09T14_53_47Z.000001.log: no space left on device
我无法调整音量大小
kubectl patch pvc datadir-ckdb-cockroachdb-0 -p '{"spec":{"resources":{"requests":{"storage":"10Gi"}}}}'
The PersistentVolumeClaim "datadir-ckdb-cockroachdb-0" is invalid: spec: Forbidden: field is immutable after creation
现在我被困住了,因为我无法运行节点来取回我的数据。 反正还有吗?我至少想检索我的数据。反正我的服务崩溃了。
第二个问题:如果我以后想避免这种情况,应该使用什么值在GKE上具有可动态调整大小的卷?
第三个问题:掌舵图中的默认值是否真的应该保持这样?
答案 0 :(得分:2)
如https://stackoverflow.com/users/9231144/patrick-w所述,在Kubernetes / GKE 1.11版之前,无法自动调整卷的大小。
同时,可以通过编辑GCE management console中的磁盘来手动调整它们的大小。转到此处,单击要调整大小的磁盘,单击页面顶部附近的“编辑”按钮,键入所需的磁盘新大小(以GB为单位),然后单击“保存”。然后,您必须通过SSH进入相关的Pod(例如kubectl exec -it ckdb-cockroachdb-0 bash
),并使用resize2fs
之类的命令来调整文件系统的大小,以使用新的磁盘容量。
对于您有关在Helm Chart中更改默认磁盘大小的问题,这是一个公平的问题。但是好的默认大小是多少?太低了,这很容易发生。太高了,在磁盘空间不足以使部署成功的环境中,它将无法正常工作。特别是,minikube
使用tmpfs支持的卷,因此它们的大小受到计算机内存的很大限制。至少,在实例化图表之后,在输出中发出警告似乎是必要的。
答案 1 :(得分:1)
磁盘大小调整尚未在1.10上的gce-pd中提供。
您需要将StorageClass中的“ allowVolumeExpansion”值设置为“ true” 不幸的是,GKE 1.10无法识别此字段,并将其保留为。 With the release of 1.11, you should be able to resize PVCs dynamically。
同时,为了不丢失数据,可以确保将“ reclaimPolicy”设置为“ retain”,取消绑定PV使用的PVC create a snapshot of the GCE-PD,并创建一个更大的新磁盘。或者,您可以将GCE-PD挂载到另一个VM实例上以恢复数据。