使用 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 设备插件或扩展调度程序在 yaml 文件中指定它

我正在寻找方法/黑客,通过它我只能使用 Kubernetes 源代码在容器内附加/扩展LD_LIBRARY_PATH。

谢谢。

你可以直接烘焙到你的 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。

希望对您有所帮助。

如果我了解您的问题,您所需要的只是按计划透明地将ld_library_path添加到 pod。 也许你可以尝试使用mutatingadmission webhook。 这允许您向 kubernetes 发送补丁命令以修改清单。 万岁云有一个很好的文档。 我自己没有尝试过。 https://banzaicloud.com/blog/k8s-admission-webhooks/

最新更新