Kubernetes pod ID



我有一个Kubernetes ReplicaSet与5个副本。我想有一个pod ID增加每个副本,但它不应该增加当一个pod是重新创建,因为它崩溃。

的例子:

* ReplicaSet starts with 4 replicas    *
* Replica 1 starts with the ID 1       *
* Replica 2 starts with the ID 2       *
* Replica 3 starts with the ID 3       *
* Replica 4 starts with the ID 4       *
* Replica 3 dies                       *
* Replica 5(3) starts with ID 3        *

你正在寻找一个statfulset

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

命名从ID 0开始,但这是您正在寻找的行为。


回复您的评论。当我的SatefulSet使用我自己构建的图像时,我可能会使用这样的东西,在启动应用程序之前解析我的容器索引:

if test -z "$HOSTNAME"; then
HOSTNAME=`hostname 2>/dev/null`
fi
if echo "$HOSTNAME" | grep -E '.*-[0-9][0-9]*' >/dev/null ; then
POD_IDX=`echo "$HOSTNAME" | sed 's|.*-([0-9]*)$|1|'`
fi
#echo My index is $POD_IDX

在其他情况下,我可以从公共注册中心部署映像。然后,我会找出一种方法,通过一些initContainer上下文化的配置传递此应用程序,例如普罗米修斯-它不使用Pod索引,尽管它可以从上面重用块,…:

initContainers:
- args:
- -c
- |
set -x; 
sed "/external_labels:.*/ascrape_by: $REPLICA" /etc/prometheus.yml.tpl | 
sed "s|^scrape_by:|    scrape_by:|" >/etc/prometheus/prometheus.yml;
command: [ /bin/sh ]
env:
- name: REPLICA
valueFrom:
fieldRef:
fieldPath: metadata.name
image: docker.io/prom/prometheus:xx

相关内容

  • 没有找到相关文章

最新更新