kubernetes - 使用 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。
谢谢。
解决方案
你可以直接烘焙到你的 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。
希望能帮助到你。
推荐阅读
- python - 带条件的正则表达式
- javascript - 每次从下拉列表中选择项目时,如何使图表动态化?
- django - 添加到购物车功能的 Django 选择字段
- ios - 如何从 iPhone 设备获取 mp3 音频文件以及如何转换特定的比特率和采样率?
- android - 如果没有放置物品的地方,我们给 showAsAction="always" 怎么办?
- python - 如何从文件中的类中导入列表?
- python - Python:查找'a_str'中的最后一个字母。用'@'替换'a_str'中这个字母的每个出现。EG 'a_str' = "Dog dog",输出应该是 "Do@do@"
- reactjs - 从搜索 API 获取项目的最佳方式是什么?
- reactjs - 无法在反应路由器中访问我的 /movie/:id 路由,其他人工作正常。你能告诉我我做错了什么吗?
- c++ - Qt c++ VS 代码:如何使用相对文件路径?