kubernetes - Kubernetes 在 ReadWriteOnce 访问模式下使用 PersistentVolumeClaim 升级 Pod
问题描述
我有使用 PersistentVolumeClaim 作为数据库存储的 postgres pod,模式为 ReadWriteOnce。
使用 Helm 升级 pod 很棘手,因为在旧 pod 释放声明之前,新 pod 会被阻止,并且在新 pod 准备好之前,Helm 不会删除旧 pod。
通常如何处理这个问题?我似乎在任何地方都找不到关于此的文档,我认为这是一个常见问题。
这是我的PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pgdata-claim
spec:
accessModes:
- ReadWriteOnce
storageClassName: standard
resources:
requests:
storage: 20Gi
selector:
matchLabels:
app: postgres
解决方案
如果您使用ReadWriteOnce 模式,我的建议是使用“ StatefulSet ”和“ volumeClaimTemplates ”,它已成功测试(但没有 helm)。
作为一个例子,请看一下:
https://kubernetes.io/blog/2019/04/04/kubernetes-1.14-local-persistent-volumes-ga/
请分享结果和你的发现。
推荐阅读
- sql - 可追溯到 14 个整月的 Proc SQL
- php - 存储 SMTP 用户数据加密?
- java - ThreadPoolExecutor 意外错误
- spring - 将 mongo 文档翻译成 mongotemplate 或 mongorepository?
- wordpress - 调查 Wordpress 博客上使用的 Drupalgeddon 漏洞利用
- file - 最佳实践:直接写入文件与写入标准输出
- angular - Angular - 带有参数和“超级”调用的父类构造函数
- ios - 在 Mac 上为 iOS 构建 libgdx 默认测试项目需要 Android SDK?
- amazon-web-services - 无法通过 cloudformation 设置 cognito userpool 客户端的属性
- db2 - 可以访问 DB2 的用户是否也可以访问 OS400?