来自 configMap 的 initialDelaySeconds 值

initialDelaySeconds value from configMap

我有多个服务,它们的探测器配置方式相同。我想将 livenessProbe 的常用值(如 initialDelaySeconds、periodSeconds 等)提取到 configMap 中。可能吗?

当我创建这样的 configMap 时:

data:
  liveness-endpoint: /actuator/health/liveness
  liveness-initialDelaySeconds: 60
  liveness-periodSeconds: 5

并尝试像这样在探测中引用它:

  livenessProbe:
    httpGet:
      path: liveness-endpoint
      port: http-api
    initialDelaySeconds: liveness-initialDelaySeconds
    periodSeconds: liveness-periodSeconds

kubernetes 抱怨,configMap 必须只有字符串,所以我将其更改为

  liveness-initialDelaySeconds: "60"

然后它抱怨说探测必须使用整数,而不是字符串。

如您所见,我可以为探测引用端口,所以可能有一种方法可以定义这些 int 值,但是如何定义?

Kubernetes 不允许在 yaml 文件中使用 configMap。基本上它需要在 configMap 加载之前知道,你只能使用 configMaps 作为卷和环境变量。

端口也可以是字符串,因为您可以在 pod、svc 定义中命名端口,然后在 liveness、readiness 探测中引用它。但是 periodSeconds 只是普通的旧整数值。