所以我正在研究如何在我的案例中使用Kubernetes。我安装了它并玩了一下。
问题是,当复制控制器启动几个副本时,它们的名称中会出现类似id的内容:
用例的更多解释。我有一个应用程序在目录中写入一些会话文件。我想保证系统中会话ID的唯一性。这意味着如果一个应用程序实例在VM1上运行,另一个实例在VM2上运行,我想在app之前添加某种标识符,如app-1-dajk4l和app-2-dajk4l,其中app是应用程序的名称和1 ,2是实例标识符,它应该来自复制控制器,因为它是动态的,不能手动配置。 dajk4l是一些标识符,如当前时间戳或类似标识符。
感谢。
答案 0 :(得分:12)
由于Kubernetes不允许同一名称空间中的两个pod具有相同的名称,因此保证ID在任何单个时间点都是唯一的。但是,没有任何长期保证,因为他们只是generated as a random string of 5 alphanumeric characters。但是,鉴于有超过6千万个这样的随机字符串,在大多数环境中,不太可能发生时间冲突。
是的,你可以使用名为"Downward API"的名称拉入pod的命名空间并命名为环境变量,在容器上添加一个字段
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name