Cal*_*ton 5 go-templates kubernetes kubernetes-helm
$ helm version
version.BuildInfo{Version:"v3.3.0", GitCommit:"8a4aeec08d67a7b84472007529e8097ec3742105", GitTreeState:"dirty", GoVersion:"go1.14.6"}
Run Code Online (Sandbox Code Playgroud)
所以我有我的模板:
$ helm version
version.BuildInfo{Version:"v3.3.0", GitCommit:"8a4aeec08d67a7b84472007529e8097ec3742105", GitTreeState:"dirty", GoVersion:"go1.14.6"}
Run Code Online (Sandbox Code Playgroud)
值.yaml:
minAvailable: {{ mul .Values.autoscaling.minReplicas 0.75 }}
Run Code Online (Sandbox Code Playgroud)
我本来期望渲染输出为2.25,但我得到 0 (3 * 0因为0.75被压倒了......)
我尝试过类似的事情
autoscaling:
minReplicas: 3
Run Code Online (Sandbox Code Playgroud)
最终我要floor返回一个 int 的值...
minAvailable: {{ mul (float .Values.autoscaling.minReplicas) 0.75 }}
Run Code Online (Sandbox Code Playgroud)
但我只是不明白为什么我似乎不能做简单的浮点算术
我尝试过的其他事情
minAvailable: {{ floor ( mul .Values.autoscaling.minReplicas 0.75 ) }}
Run Code Online (Sandbox Code Playgroud)
minAvailable: {{ float64 .Values.autoscaling.minReplicas }}
Run Code Online (Sandbox Code Playgroud)
没有任何东西产生浮点数......
我什至尝试在 value.yaml 中执行此操作
autoscaling:
minReplicas: 3.0
Run Code Online (Sandbox Code Playgroud)
Str*_*dic 11
Helm 及其模板支持默认的 Go文本/模板功能以及Sprig扩展提供的功能。从 Sprig 版本3.2开始,它还支持Float Math 函数,如addf、、 、 等。在您的情况下subf,您只需要:mulfdivf
minAvailable: {{ mulf .Values.autoscaling.minReplicas 0.75 }}
Run Code Online (Sandbox Code Playgroud)
这些算术函数不是核心 Go文本/模板语言的一部分。它们来自Helm 包含的一个名为Sprig的有用扩展包。特别是,其数学函数的文档位于页面顶部
int64除非另有说明,所有数学函数都对值进行运算。
x * 0.75您可以计算整数,而不是尝试计算浮点数x * 3 / 4。将其分解为(x * 3) / 4,您可以将其作为相当精确的整数算术来执行:
minAvailable: {{ div (mul .Values.autoscaling.minReplicas 3) 4 }}
Run Code Online (Sandbox Code Playgroud)
Pod 中断预算实际上采用百分比......
所以可以做
minAvailable: "66%" # 2/3
Run Code Online (Sandbox Code Playgroud)
或者
minAvailable: "75%" # 3/4
Run Code Online (Sandbox Code Playgroud)
来自文档:
如果您有 7 个 Pod,并且将 minAvailable 设置为“50%”,那么这是否意味着 3 个 Pod 或 4 个 Pod 必须可用并不是立即显而易见的。Kubernetes 向上舍入到最接近的整数,因此在这种情况下,必须有 4 个 Pod 可用。
所以本质上,66%of 3is1.98所以将被四舍五入为2
| 归档时间: |
|
| 查看次数: |
6014 次 |
| 最近记录: |