我正在使用 Vaultwarden 来存储密码和其他敏感数据。 Vaultwarden 在容器中运行,其中 SQLite 数据库托管在映射到主机的卷上。配置存储在 Quadlet 文件中。
显然,这些数据对我来说很重要,所以我想进行备份。我正在寻找 Duplicati 来完成这项工作。我更喜欢让 Duplicati 也在容器中运行。
我应该如何向 Duplicati 展示该卷?我应该创建一个 Pod 并将两个容器放在同一个 Pod 中,还是应该创建两个单独的容器并将卷映射两次?这种情况下的最佳实践是什么?
这取决于您的用例,
Case [1]:
如果您需要简化管理、更低延迟和低网络开销,那么您可以在 Pod 内使用共享卷。
Case [2]:
如果您更喜欢灵活性、隔离和独立缩放,那么请选择安装相同体积的单独容器。
但请确保将 备份容器 对该卷的访问限制为:只读
Kubernetes Pod 配置示例:
apiVersion: v1
kind: Pod
metadata:
name: xyz
spec:
containers:
- name: vaultwarden
image: xyz
volumeMounts:
- mountPath: /opt/vw-data
name: vaultwarden-data
readOnly: false
- name: backup-container
image: duplicati
volumeMounts:
- mountPath: /opt/vw-data
name: vaultwarden-data
readOnly: true
volumes:
- name: vaultwarden-data
persistentVolumeClaim:
claimName: my-pvc
并且,如果您使用单独的 docker 容器,请将
:ro
添加到容器内安装的卷的路径末尾:
docker run -d --name backup-container -v /opt/vw-data:/path/in/container:ro backupvw