1

假设我想使用 Azure Container Service 或 Azure App Service,使用 ASP.Net Core API 或/和 Web 应用程序挂载 docker 容器。

到目前为止,每个 API 都使用主机 VM (Linux/Win) 中的本地存储来存储其部分数据,并与其他 Azure 托管持久性服务(例如 SQL、Redis、Document db 等)并行使用,这是有充分理由的。

如果我为应用程序使用 docker 容器,我可以为每个 API 的本地存储做什么?我使用 SQLite、RocksDB、文档。

是否可以将 Azure 托管磁盘用于 docker 卷?

它们的行为/性能是否与本地磁盘相同?例如 SQLite 的文件锁定、速度。

否则,我应该继续使用 VM 部署

4

1 回答 1

1

对此的简短回答是“是”,您可以在 Azure 存储帐户中保留卷并使用其他服务访问这些文件。

现在通过 AKS(Azure Kubernetes 服务)我正在使用 Azurefile 持久卷声明('PVC')来使我的服务卷可用,但我绝不是专家。

在我们的案例中,我们正在努力将现有的容器化基础架构从 Docker Cloud(刚刚停用)迁移到 Azure AKS。即使我们所有的容器都保持不变(尝试在 AKS 上运行,就像在 Docker Cloud 上一样),这也是一个相对较大的项目。对于您开发整个基础架构,我预计会花费 1 周时间 + 弄清楚细节。

入门资源:

  1. https://docs.microsoft.com/en-us/azure/aks/azure-files-dynamic-pv#create-storage-account

警告:我说简短的回答是“是”,因为从“我想将这个东西容器化并将数据存储在持久卷中”需要一些时间才能真正让容器启动并运行底层基础设施,正如你所描述的那样.

速度

根据我的经验,从本地托管在 Kubernetes 节点 (Azure VM) 文件系统上的持久卷迁移到存储帐户使我的 Web 应用程序(总计)延迟了数百毫秒,但我也没有尝试对其进行优化。

我们的加载时间从 1.3-1.4 秒变为 1.5-1.6 秒。

于 2018-05-29T22:56:50.133 回答