gpt4 book ai didi

postgresql - 我们可以在 kubernetes 中的同一个持久卷中创建多个数据库吗?

转载 作者:行者123 更新时间:2023-11-29 13:48:35 24 4
gpt4 key购买 nike

  • 我有 Azure 机器 (kubernetes),其代理为 2 核、1 GB。我的两个服务在这台机器上运行,每个服务都有自己的 Postgres(部署、服务、Pv、PVC)。
  • 我也想在同一台计算机上托管我的第三个服务。
  • 因此,当我尝试创建 Postgres 部署(这也有自己的服务、PV、PVC)时,但 Pod 陷入 status=ContainerCreating .
  • 经过一番挖掘,我发现我的 VM仅支持data-disks

所以我想为什么不使用 PVC当前服务中的早期部署,例如:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: third-postgres
labels:
name: third-postgres
spec:
replicas: 1
template:
metadata:
labels:
name: third-postgres
spec:
containers:
- name: third-postgres
image: postgres
env:
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
- name: POSTGRES_USER
value: third-user
- name: POSTGRES_PASSWORD
value: <password>
- name: POSTGRES_DB
value: third_service_db
ports:
- containerPort: 5432
volumeMounts:
- name: third-postgresdata
mountPath: /var/lib/postgresql/data
volumes:
- name: third-postgresdata
persistentVolumeClaim:
claimName: <second-postgres-data>
  • 现在此部署已成功运行,但它没有创建新数据库 third_service_db
  • 可能是因为第二 PVC已经存在,所以它跳过数据库创建部分?
  • 他们有什么办法我可以使用相同的PVC对于我的所有服务和相同PVC可以有多个数据库。所以当我运行kubectl create -f <path-to-thirst-postgres.yaml>时它从环境变量中获取名称数据库配置并在相同的 PVC 中创建数据库

最佳答案

您必须为每个部署创建一个 PVC。一旦 PVC 被认领,就必须将其释放才能再次使用。

对于 AzureDisk,自动创建的卷只能由单个节点装载(ReadWriteOnce 访问模式),因此还有一个限制:每个部署最多可以有>1 副本。

关于postgresql - 我们可以在 kubernetes 中的同一个持久卷中创建多个数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44456660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com