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"

然后它抱怨探针必须使用Integer而不是String。

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

解决方法

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

端口也可以是字符串,因为您可以在pod,svc定义中命名端口,然后在活跃性,准备情况探针中引用这些端口。但是periodSeconds只是普通的旧整数值。