kubernetes 将statefulset的副本计数传递到其pod

4ktjp1zp  于 2022-12-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(130)

我有一个statefulset,我需要知道pod内部的当前副本计数。为此,我尝试:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: sample-mariadb
  namespace: demo
spec:
  replicas: 3
  template:
    spec:
      containers:
      - env:
        - name: REPLICAS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.replicas

得到了这个错误:
警告失败创建4 m15 s(x17超过9 m43 s)状态集控制器创建Pod sample-mariadb-0(在状态集sample-mariadb中)失败错误:Pod“样本-mariadb-0”无效:规范容器[1].env[3].值来源.字段引用.字段路径:无效值:“规格复制品”:转换字段路径时出错:不支持字段标签:spec.replicas
如何从Pod内部获取当前副本计数?

to94eoyn

to94eoyn1#

您只能发送Pod规范中的字段。spec.replicas字段是StatefulSet规范的一部分,而不是基础Pod的一部分。StatefulSet的template部分是Pod规范。因此,您收到此错误。

xqk2d5yq

xqk2d5yq2#

我一直在寻找解决方案,我能找到的替代方案是:
1.设置相同的环境变量

- name: REPLICAS
  value: "3"

1.也可以将复本的值更新为模板变量,并将更新为
template.yaml
x一个一个一个一个x一个一个二个x

相关问题