首页 > 解决方案 > 使用 Kubernetes 源代码附加/扩展 LD_LIBRARY_PATH

问题描述

当一个 pod 被调度时,我通过 Kubernetes DevicePlugins 动态(并且透明地)将一些共享库文件夹挂载到客户端容器中。现在,在容器中,我想将这些动态安装的共享库附加/扩展到 LD_LIBRARY_PATH 环境变量。

容器内部:这可以通过在 bash "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/some/new/directory" 上运行命令来实现

从主机:我可以将导出命令添加到 pod.spec.command 和 args 下的 pod.yaml 文件中。

但是,我想透明地做到这一点,而不需要客户端/管理员使用 Kubernetes DevicePlugins 或 Extended-Scheduler 在 yaml 文件中指定它

我正在寻找方法/hack,通过它我可以仅使用 Kubernetes 源代码在容器内附加/扩展 LD_LIBRARY_PATH。

谢谢。

标签: kubernetesld

解决方案


你可以直接烘焙到你的 Dockerfile 中,然后创建一个你在 Kubernetes 中使用的镜像。无需破解 Kubernetes 源代码。

在您的 Dockerfile 中的某行:

ENV LD_LIBRARY_PATH /extra/path:$LD_LIBRARY_PATH

然后:

docker build -t <your-image-tag> .
docker push <your-image-tag>

然后,更新您的 pod 或部署定义并部署到 Kubernetes。

希望能帮助到你。


推荐阅读