kubernetes - Kubernetes:在每个节点上单独配置每个部署/pod
问题描述
我面临一个我们考虑使用 Kubernetes 的场景。但我不确定这是否是正确的工具:
我们有多辆车,每辆车都有一台计算机通过蜂窝网络连接到我们的主服务器。我们希望在每辆车上部署多个应用程序,因此车辆就是我们的节点。我们不需要任何扩展,每辆车都有一组相同的部署应用程序在两个 pod 中运行。如果车辆的计算机关闭,我们不得将 Pod 部署在另一个节点上。尽管应用程序集总是相同的,但它们的配置在每个车辆(节点)上是不同的。例如,某些车辆有一个摄像头,并且只有在向应用程序提供其序列号时才能访问此摄像头。其他车辆根本没有摄像头。
问题:
使用DaemonSets,我们可能可以实现所有车辆都将只有这两个带有相同容器的 pod。但是个人配置让我担心。我们认为在每辆车的计算机上都有相关配置的环境变量。但是在 pod 中运行的容器内无法访问主机系统的环境变量。是否有可能为我们的部署提供节点唯一的配置?Kubernetes 是否适合在这里使用?
解决方案
抱歉,我无法理解车辆,这可能是由于我单次阅读
但我可以帮忙;
但是在 pod 中运行的容器内无法访问主机系统的环境变量。是否有可能为我们的部署提供节点唯一的配置?
是的,我不确定您是如何在主机或 K8s 节点上设置环境的。
但是您可以使用 Hostpath 选项,您可以将节点路径目录直接挂载到容器中。您可以在一个固定位置创建一个文件,其中包含要在创建Kubernetes节点时传递给应用程序的环境变量,然后创建您的 pod 以使用与 hostpath 相同的挂载路径。
如果您的节点在扩展期间被替换,如果您是第一次手动添加文件 env ,您的新 POD 或容器将不会获得此文件。
将此env 文件保存在用户数据(启动脚本)中,以便在节点池中创建任何节点时,它将在默认位置使用文件启动。
阅读更多:https ://kubernetes.io/docs/concepts/storage/volumes/#hostpath
添加:
如果要在容器中使用节点的标签:https ://github.com/scottcrossen/kube-node-labels
推荐阅读
- powerbi - Power BI - 在图表中仅显示 > 0 的值
- java - 来自 mongoDB 的更改事件中的 updateDescription.updatedFields 为空
- java - 来自 Java 库的 C++ 主应用程序代码的 JNI 调用
- python - 两个不相等的列表显示相等的python
- java - JavaFX:调用方法时出现 NullPointerException
- angular - Angular - 为什么命令 NPM start --open 4300 不起作用?
- java - 如何使用 Corda-Spring-Webserver 实现查询过滤?
- spring-boot - 引起:java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getManager(Ljava/lang/Class;)
- python - OpenCV:为深度图调整视频帧大小时出错
- javascript - 在 MS Access 中获取其他用户的更改