使用Kubernetes源代码附加/扩展LD_LIBRARY_PATH

时间:2018-09-26 06:01:24

标签: kubernetes ld

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

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

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

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

我正在寻找方法/技巧,仅使用Kubernetes源代码就可以在容器内附加/扩展LD_LIBRARY_PATH。

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以烘烤到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。

希望有帮助。

答案 1 :(得分:0)

如果我了解您的问题,您需要做的就是按计划将ld_library_path透明地添加到pod中。也许您可以尝试使用mutatingadmission webhook。它允许您将补丁命令发送到kubernetes来修改清单。 banzai云提供了很好的文档。我自己还没有尝试过。 https://banzaicloud.com/blog/k8s-admission-webhooks/