0

我有多个服务,它们的探针以相同的方式配置。我想将 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 值,但是如何定义呢?

4

1 回答 1

3

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

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

于 2020-10-22T07:22:52.590 回答