【问题标题】:How to deploy to google-cloud using docker compose?如何使用 docker compose 部署到谷歌云?
【发布时间】:2020-05-02 16:00:26
【问题描述】:

我使用 asp.net core 3.0 制作了一个 api,我也在使用 docker 在本地运行我的 api(这是因为我的团队中有人使用 linux 并且遇到了一些问题)。现在我正在尝试使用 GKE 在云 (GCP) 中部署我的 api。我按照谷歌文档了解如何使用 gcloud cli 和 kubectl 以及所有这些来做到这一点。这一切都奏效了,除了服务器立即崩溃,我在日志文件中看到没有找到 MSSQL 服务器,因为我的 Dockerfile 中显然没有。相反,我们在 docker-compose.yaml 文件中设置我们的 sql 服务器。有什么方法可以使用撰写文件进行部署,还是我必须以某种方式手动执行此操作?请注意,我仍然是容器化领域的初学者。

link to a gist of our dockerfile and compose file

提前致谢

【问题讨论】:

  • GCP 中使用了什么?带有 Docker 或 Google Kubernetes Engine (GKE) 的虚拟机?
  • 对不起,我没有澄清,我正在使用 GKE。
  • 您尝试kompose.io compose 来转换您的docker-compose.yaml。 Quick Link 转换您的文件并部署
  • 是的,我在 stackoverflow 上看到了关于 Kompose 的答案,我安装了它并转换了我的文件。但我不知道从那里去哪里。
  • 问题:为什么要在 Kubernetes 中部署数据库?你可能真的不想要那个?为了明确目标是什么,您是否希望您的扩展应用程序/API 全部调用到单个 SQL Server 实例中?还是希望 Kubernetes 中的每个节点都有自己的 SQL Server 实例?

标签: docker kubernetes google-cloud-platform asp.net-core-3.0


【解决方案1】:

当您部署到 Kubernetes 时,您必须部署应用程序数据库(在您的情况下为 SQL Server)。

您也可以按照 kubectl 的 Google 文档来部署数据库(最好为您的应用和数据库编写一个包含 Deployments 和 Services 的 YAML 文件)。

或者,您可以重新使用您的 docker-compose.yaml 以使用 Kompose 将两者部署到 Kubernetes。 Kompose 将 Docker Compose YAML 清单转换为 Kubernetes 并将它们应用到您的集群。 Kompose 有一些限制(不完全支持 Docker Compose)。

这里有一个建议:在云中的容器中运行数据库并非易事。您必须考虑持久存储、备份、高可用性等。使用您运行的云提供的数据库要容易得多。

【讨论】:

    猜你喜欢
    • 2020-07-24
    • 2021-05-03
    • 1970-01-01
    • 2021-07-15
    • 2019-11-25
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    相关资源
    最近更新 更多