我知道每个 pod 都有一个(唯一的)UUID,但是是否可以自动给它一个低 ID 号,只要没有两个 pod 同时使用它们就可以重复使用?因此,如果 pod 4 死了,下一次启动 pod 时会得到 4。有时可能会出现间隙。
我的目标是在类似 twitter-snowflake 的算法中使用这个数字作为工作人员。
我想在不使用 StatefulSet 的情况下实现这一点,因为它带有一堆限制和复杂性,我不想将其添加到大型部署中。
没有内置的方法可以做到这一点。
最直接的解决方法是initcontainer。在 pod 启动时,initcontainer 在原始容器启动之前运行,确定此 id,并将其设置为 pod。该 initcontainer 将运行以下步骤(使用 bash 或您选择的语言):
连接到 Kubernetes API并选择ownerReference当前 pod 的
ownerReference统计当前 pod匹配的 pod 数量,例如:
kubectl get pods -o jsonpath='{range .items[?(.metadata.ownerReferences.uid=)]}{.metadata.name}{end}'
将当前 pod 上您的 id 的标签设置为number of previously selected pods + 1
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |