postgresql - 使用 glusterfs 作为存储的 k8s 上的 postgres
问题描述
我在卷上部署了一个postgres
数据库。但是每次我重新启动我k8s
的glusterfs
Pod 时,所有的数据都会丢失。为什么会这样?
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres-deployment
namespace: gitlab
labels:
app: postgres
spec:
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:13.1
ports:
- containerPort: 5432
volumeMounts:
- mountPath: /var/lib/postgresql
name: postgres
env:
- name: POSTGRES_USERNAME
valueFrom:
secretKeyRef:
name: gitlab
key: postgres_username
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: gitlab
key: postgres_password
- name: POSTGRES_DB
valueFrom:
secretKeyRef:
name: gitlab
key: postgres_db
volumes:
- name: postgres
glusterfs:
endpoints: glusterfs-cluster
path: gv
解决方案
根据 Kubernetes 文档https://kubernetes.io/docs/concepts/storage/volumes/#glusterfs,与删除 Pod 时擦除的 emptyDir 不同,glusterfs 卷的内容被保留,并且卷只是被卸载. 我建议在链接https://github.com/kubernetes/kubernetes/issues/new/choose提出问题
如果你想安装带有 PostgresSQL 后端的 GitLab,在 Helm Charts 下面会更容易使用。
https://docs.gitlab.com/charts/
推荐阅读
- javascript - React Native、Axios 和未处理的 Promise Rejections
- python - 区分django M2M信号中更新和创建的动作
- django - 在通用 CreateView 中创建两个模型
- javascript - 将长短语转换为其首字母缩写词(字谜)
- python - 无法使用 read_csv 将列转换为类别 dtypes Pandas
- angular - Angular 5 - 对象数组长度 = 0
- git - 我无法调整从 SVN 存储库迁移的 Git 存储库中的所有提交消息
- javascript - 使用 javascript 删除 Css 规则
- javascript - 原版 HTML+JS - 动态插值?
- javascript - hidepage 和 onbeforeunload 在移动设备上不起作用