Postgresql 我们可以在kubernetes的同一个持久卷中创建多个数据库吗? 我有一台Azure机器(kubernetes),它有2核1 GB的代理。我的两个服务在这台机器上运行,每个都有自己的Postgres(解聚、服务、Pv、PVC) 我想在同一台机器上托管我的第三个服务 所以,当我试图创建Postgres部署时(它也有自己的服务,PV,PVC),但Pod被困在status=ContainerCreating中 经过一番挖掘,我知道我的VM只支持数据磁盘

Postgresql 我们可以在kubernetes的同一个持久卷中创建多个数据库吗? 我有一台Azure机器(kubernetes),它有2核1 GB的代理。我的两个服务在这台机器上运行,每个都有自己的Postgres(解聚、服务、Pv、PVC) 我想在同一台机器上托管我的第三个服务 所以,当我试图创建Postgres部署时(它也有自己的服务,PV,PVC),但Pod被困在status=ContainerCreating中 经过一番挖掘,我知道我的VM只支持数据磁盘,postgresql,azure,kubernetes,persistent-storage,kubectl,Postgresql,Azure,Kubernetes,Persistent Storage,Kubectl,所以我想为什么不在当前服务中使用早期部署的PVC,比如: apiVersion: extensions/v1beta1 kind: Deployment metadata: name: third-postgres labels: name: third-postgres spec: replicas: 1 template: metadata: labels: name: third-postgres spec:

所以我想为什么不在当前服务中使用早期部署的
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>
apiVersion:extensions/v1beta1
种类:部署
元数据:
姓名:第三博士后
标签:
姓名:第三博士后
规格:
副本:1份
模板:
元数据:
标签:
姓名:第三博士后
规格:
容器:
-姓名:第三博士后
图片:博士后
环境:
-姓名:PGDATA
值:/var/lib/postgresql/data/pgdata
-姓名:POSTGRES_用户
值:第三个用户
-姓名:POSTGRES_密码
价值:
-姓名:POSTGRES_DB
值:第三个\u服务\u db
端口:
-集装箱港口:5432
体积数量:
-姓名:第三邮政总局
mountPath:/var/lib/postgresql/data
卷数:
-姓名:第三邮政总局
persistentVolumeClaim:
索赔名称:
  • 现在,此部署已成功运行,但它不会创建新的数据库
    third\u service\u db
  • 可能是因为第二个
    PVC
    已经存在,所以它跳过了Db create部分
  • 我可以用同样的
    PVC
    为我的所有服务提供服务,同样的
    PVC
    可以有多个数据库。因此,当我运行
    kubectl create-f
    时,它从env变量中获取名称数据库配置,并在相同的
    PVC

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


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

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


在AzureDisk的情况下,自动创建的卷只能由单个节点装载(读写访问模式),因此还有一个限制:每个部署最多只能有一个副本。

PVC用于请求PV,因此当您创建部署(第三服务)时,它试图为您提供一个新的PV,而status=ContainerCreating可能表明提供失败。您可以检查您的存储类吗?PVC用于请求PV,因此,当您创建部署(第三个服务)时,它会尝试为您调配新的PV,状态=ContainerCreating可能表明调配失败。你能检查一下你的存储类吗?