【问题标题】:how to deploy app with docker compose to kubernetes如何使用 docker compose 将应用程序部署到 kubernetes
【发布时间】:2019-02-27 18:56:36
【问题描述】:

我是 docker 和 kubernetes 的新手。我有 docker-compose.yml

version: '2'
services:
  db:
    build:
      context: ./db
      dockerfile: Dockerfile
    ports:
      - "3306:3306"
    networks:
      docker-network:
        ipv4_address: 172.18.0.2
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: db
      MYSQL_USER: user
      MYSQL_PASSWORD: mypassword

  createlinuxuser:
    build:
      context: ./createlinuxuser
      dockerfile: Dockerfile
    networks:
      docker-network:
        ipv4_address: 172.18.0.3
    depends_on:
      - db
    tty: true
    restart: always

networks:
  docker-network:
    driver: bridge
    ipam:
     config:
       - subnet: 172.18.0.0/16  
         gateway: 172.18.0.1 

我想在 kubernetes 上的容器之间使用桥接网络部署这个多容器 docker 应用程序。我还想让 Kubernetes 上的两个容器都有 IP,这样它们就可以互相交谈,这可能吗?这样做的最佳做法是什么?

【问题讨论】:

  • Kubernetes 与单机 Docker Compose 设置有一些有趣的区别。例如,您将无法强制使用特定的 IP 范围。我建议阅读 kubernetes.io 上的教程并构建其中涉及的 StatefulSet、Deployment 和 Service YAML 对象。

标签: docker kubernetes containers


【解决方案1】:

您可能需要查看的另一个功能是使用 docker cli 本身部署到 kuberentes,如 docker stack deploy 中所述

  • 客户端和守护程序 API 都必须至少为 1.25 才能使用此命令

  • deploy 命令支持 compose 文件 3.0 及以上版本。所以你可能需要将 docker-compose.yml 更新到 v3

docker stack deploy --compose-file /path/to/docker-compose.yml mystack

可以指定其他选项,例如:--namespace--kubeconfig

您还可以查看Helm,它是 kubernetes 的包管理器,您需要编写一个 helm chart 以便将其部署到 kubernetes 集群上

【讨论】:

    【解决方案2】:

    正如 David Maze 所说,您想要实现的目标可能存在一些问题。 绝对不能直接使用这个文件。您可以使用 Kompose 从 Docker Compose 转到 Kubernetes 或 kompose convert

    Kompose 支持 V1、V2 和 V3 Docker Compose 文件的转换 进入 Kubernetes 和 OpenShift 对象。 但如前所述,它可能需要进行一些调整。

    至于您的网络。您想要一个 Pod 中的多个容器还是要将它们全部部署为单独的 pod?在这种情况下,请阅读有关 Kubernetes Networking 的文档或一些文章。

    在 Docker 构造方面,一个 Pod 被建模为一组 Docker 共享网络命名空间的容器。 Pod 中的所有容器 具有通过网络分配的相同 IP 地址和端口空间 分配给 Pod 的命名空间,并且可以通过 localhost 找到彼此 因为它们位于同一个命名空间中。

    source

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 2019-05-04
      • 2019-06-08
      • 1970-01-01
      • 2021-04-01
      • 2021-06-03
      相关资源
      最近更新 更多