问题描述
我有多个服务,并且它们的探针以相同的方式配置。我想将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只是普通的旧整数值。