kubernetes statefulset-获取spec.replicas元数据,并在配置中的其他位置引用



我正在配置一个状态填充集,其中我想要replicas的数量( spec.replicas 如下所示(可用于某种程度上作为一个参数传递到应用程序实例。我的应用程序需要 spec.replicas 确定副本的数字,因此它知道从mySQL表中加载哪些行。我不想在 spec.replicas 和应用程序参数中对复制品中的副本数进行硬编码,因为在上下缩放副本的数量时,由于应用程序参数需要缩放时进行调整。

这是我的状态填充配置:

apiversion:apps/v1beta1善良:状态满元数据:  标签:    运行:my-app  名称:my-app  名称空间:my-ns规格:  复制品:3  选择器:    MatchLabels:      运行:my-app  ServiceName:my-app  PodmanagementPolicy:平行  模板:    元数据:      标签:        运行:my-app    规格:      容器:       - 名称:my-app        图片:my-app:最新        命令:           - /bin/sh           - /bin/start.sh           - 开发          -2000m           - " 0"           - " 3" **需要替换为#replicas **          -127.0.0.1           - " 32990"        ImagePullPolicy:总是        LIVENICE PROPBE:          httpget:            路径:/健康            端口:8081          InitiaDelayseconds:180          周期:10          超时路要数:3        REACHINCESPROBE:          失败:10          httpget:            路径:/准备就绪            端口:8081            方案:http          InitiaDelayseconds:30          时期:15          SuccessThreshold:1          超时路要数:3        端口:         - 集装箱:8080          协议:TCP        资源:          限制:            内存:2500mi      ImagePullSecrets:       - 名称:快照扣      restartpolicy:总是

我已经阅读了kubernetes文档和 spec.replicas 字段在吊舱或容器级别范围范围内,从来没有状态填充,至少在我看过的情况下。

预先感谢。

您可以使用YAML锚做到这一点:

查看:https://helm.sh/docs/chart_template_guide/yaml_techniques/#yaml-anchors

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  labels:
    run: my-app
  name: my-app
  namespace: my-ns
spec:
  replicas: &numReplicas 3
  selector:
    matchLabels:
      run: my-app
  serviceName: my-app
  podManagementPolicy: Parallel
  template:
    metadata:
      labels:
        run: my-app
    spec:
      containers:
      - name: my-app
        image: my-app:latest
        command:
          - /bin/sh
          - /bin/start.sh
          - dev
          - 2000m
          - "0"
          - *numReplicas
          - 127.0.0.1
          - "32990"
        imagePullPolicy: Always
        livenessProbe:
          httpGet:
            path: /health
            port: 8081
          initialDelaySeconds: 180
          periodSeconds: 10
          timeoutSeconds: 3
        readinessProbe:
          failureThreshold: 10
          httpGet:
            path: /ready
            port: 8081
            scheme: HTTP
          initialDelaySeconds: 30
          periodSeconds: 15
          successThreshold: 1
          timeoutSeconds: 3
        ports:
        - containerPort: 8080
          protocol: TCP
        resources:
          limits:
            memory: 2500Mi
      imagePullSecrets:
      - name: snapshot-pull
      restartPolicy: Always

通常,您将使用向下API进行这种事情。https://kubernetes.io/docs/tasks/injects/inject-data-application/downward-api-volume-expose-expose-pod-information/

但是,Kubernetes目前不可能使用向下API传播部署/状态表格数据到POD规格中,也不应该。如果您负责此软件,我将设置一些内部功能,以便它可以找到它的同行并定期确定他们的计数。

相关内容

  • 没有找到相关文章

最新更新