Kubernetes:Deployments Services Pods与docker概念之间的映射

时间:2017-07-15 06:08:41

标签: docker kubernetes docker-compose

我正在学习Kubernetes。我正在尝试将等效概念从Kubernetes映射到Docker。例如:我有以下docker-compose.yml

db:
  container_name: db
  image: postgres:latest
  ports:
    - "5432:5432"
  environment:
    POSTGRES_PASSWORD: 1234

app:
  container_name: app
  build: .
  dockerfile: Dockerfile
  ports:
    - "3000:3000"
  volumes:
    - ".:/webapp"
  env_file:
    - ./.env.docker_compose
  links:
    - db

这个docker-compose.yml有两个组件:db和app。有两种理解方式。我不知道哪一个是真的,哪一个是错的。

  • 首先了解:每个组件都位于每个pod中。这意味着db在一个pod中,app在一个pod中。
  • 第二个理解:db和app都在一个Pod中。

请告诉我哪一个是真的。 DeploymentService的问题相同。我如何映射到docker概念。

由于

1 个答案:

答案 0 :(得分:1)

一个pod是一个或多个容器的组,你的docker-compose默认会模仿一个pod。 (所以你的第二个解释)

但是使用docker swarm mode,您可以确保这两个容器位于他们自己的" pod" (作为一个容器的一组)constraints 使用dockerfile v3,您可以使用例如placement(也见于docker service create

version: '3'
services:
  db:
    image: postgres
    deploy:
      placement:
        constraints:
          - node.role == manager
          - engine.labels.operatingsystem == ubuntu 14.04