我需要能够将自定义环境变量分配给Pod的每个副本。一个变量应该是一些随机的uuid,另一个是唯一的数字。如何实现?我希望继续对副本使用“部署”。如果开箱即用不可行,如何通过定制复制控制器/控制器管理器来实现?有钩子可以实现这一目标吗?
答案 0 :(得分:2)
您可以使用向下的API将pod的metadata.uid作为envvar注入,这对于每个pod都是唯一的
答案 1 :(得分:1)
如果这是不可行的,那么如何通过定制复制控制器/控制器管理器来实现?有钩子可以实现这一目标吗?
您最好的选择是initContainer:
和/或自定义(可能被覆盖)入口点command:
的混合。除名称和其他一些琐碎的变化外,所有Pod都将彼此复制。每个Pod的特定行为都是Pod本身的容器的责任。
containers:
- image: whatever
command:
- bash
- -c
- |
export RANDOM_UUID=`uuidgen`
export UNIQ=/usr/bin/generate-some-awesome-sauce
exec /usr/local/bin/dockerfile-entrypoint.sh or whatever else
答案 2 :(得分:0)
kubectl run hello --restart Never --image busybox -- /bin/sh -c "while true; do echo \$RANDOM; sleep 1;done"
或
kubectl运行busybox --image busybox --env = random = $ RANDOM --restart从不-/ bin / sh -c“ echo \ $ random”
这很好
[root@master 41-jobs]# kubectl logs hello
3298
16447
9517
3082
32611
19179
21098
12943