Kubernetes / Docker应用程序依赖模式

问题描述 投票:1回答:2

我的项目有一个应用程序服务器和一个C ++库。该库不依赖于应用程序服务器。供应商为应用程序服务器提供了Docker镜像。我需要部署一个需要可以从每个应用程序服务器节点/ pod访问的C ++库。

我编写了一个基于供应商图像的Dockerfile,编译并将库复制到位。但是,每次有新版本的应用程序服务器时,我都需要从头开始重新构建我的C ++库。鉴于缺乏依赖性,这些似乎不是最佳的。

天真地,我期待的是能够将C ++库构建为“空”图像并在每个pod中安装(如文件系统)。这样服务器和库是分开维护的。

建立在供应商Dockerfile上的“正确”方法来构建这个吗?还是有更像我的“理想化”愿景的解决方案?

我希望答案是显而易见的,我只需要正确的术语来搜索...非常赞赏的指针。

docker kubernetes
2个回答
1
投票

使用Kubernetes,您至少有两个选项可以分别从容器映像管理库:

  1. Init containers。如果你把你的库放到外部资源,你可以使用Init containerdownload它并放入应用服务器的pod文件系统。
  2. Volumes。您还可以将库放入网络存储,并将其作为卷以ReadOnlyMany访问模式附加到应用程序服务器窗格。

1
投票

正如您所说,您可以将C ++库构建为“空”图像。对于所有部署,您可以将其用作基本映像。这样您就可以避免为每个部署构建库。

例如:使用C ++库构建映像。让我们称之为lib-img。当供应商构建映像时,供应商可以使用lib-img作为基本映像,您还可以向lib-img添加供应商所需的其他依赖项。

您还可以使用init容器来拉动pod上的库。

© www.soinside.com 2019 - 2024. All rights reserved.