Postgresql docker compose相当于kubernetes部署

Postgresql docker compose相当于kubernetes部署,postgresql,docker,kubernetes,docker-compose,microk8s,Postgresql,Docker,Kubernetes,Docker Compose,Microk8s,我在下面有一个自定义docker-compose.yml文件。我为我的postgres集群创建了一个 services: pg-master: build: '.' restart: 'always' environment: POSTGRES_USER: 'postgres' POSTGRES_PASSWORD: 'postgres' PGDATA: '/var/lib/postgresql/data/pgdata' v

我在下面有一个自定义docker-compose.yml文件。我为我的postgres集群创建了一个


services:
  pg-master:
    build: '.'
    restart: 'always'
    environment:
      POSTGRES_USER: 'postgres'
      POSTGRES_PASSWORD: 'postgres'
      PGDATA: '/var/lib/postgresql/data/pgdata'
    volumes:
     - ./postgres-data:/var/lib/postgresql/data
    ports:
     - '5432:5432'

  pg-slave:
    build: '.'
    restart: 'always'
    environment:
      POSTGRES_USER: 'postgres'
      POSTGRES_PASSWORD: 'postgres'
      PGDATA: '/var/lib/postgresql/data/pgdata'
      REPLICATE_FROM: 'pg-master'
    volumes:
     - ./postgres-data:/var/lib/postgresql/data
    ports:
     - '5432:5432'
    links:
     - 'pg-master'
无论我何时编写
docker-compose
,它都可以正常工作。我可以查看并测试我的数据库是否被复制

但是,我不知道如何编写一个与之相当的部署yml。 我的目标是确保输出相同


我在我的树莓皮4和3中使用了microk8s。

你可以考虑使用
Kompose
。这在本书中有很好的描述。您可以在此处找到有关如何安装或如何使用的信息:

Kompose支持将V1、V2和V3 Docker Compose文件转换为Kubernetes和OpenShift对象

Kompose支持通过Kompose up将“组合”应用程序部署到Kubernetes或OpenShift的简单方法

一旦您将“组合”应用程序部署到Kubernetes,kompose down将通过删除其部署和服务来帮助您删除该应用程序。如果需要删除其他资源,请使用“kubectl”命令

如果您只想转换为Kubernetes yaml,则可以使用

然而,您需要对其进行一些更改以适应解析部分

我已经在您的yaml上试用了它,并对创建的yaml进行了一些小的编辑

version: "2"

services:

  pg-master:
    image: postgres
    build: '.'
    restart: 'always'
    environment:
      POSTGRES_USER: 'postgres'
      POSTGRES_PASSWORD: 'postgres'
      PGDATA: '/var/lib/postgresql/data/pgdata'
    volumes:
     - ./postgres-data:/var/lib/postgresql/data
    ports:
     - "5432:5432"

  pg-slave:
    build: '.'
    restart: 'always'
    environment:
      POSTGRES_USER: 'postgres'
      POSTGRES_PASSWORD: 'postgres'
      PGDATA: '/var/lib/postgresql/data/pgdata'
      REPLICATE_FROM: 'pg-master'
    volumes:
     - ./postgres-data:/var/lib/postgresql/data
    ports:
     - "5432:5432"
    links:
     - 'pg-master'
输出:

$ kompose --file docker-compose.yml convert
WARN Volume mount on the host "./postgres-data" isn't supported - ignoring path on the host
WARN Volume mount on the host "./postgres-data" isn't supported - ignoring path on the host
INFO Kubernetes file "pg-master-service.yaml" created
INFO Kubernetes file "pg-slave-service.yaml" created
INFO Kubernetes file "pg-master-deployment.yaml" created