我需要在 Kubernetes 中部署 daemonset,但是不同节点中的每个 pod 对不同硬件类型需要不同的内存和 cpu 请求。
问问题
248 次
1 回答
1
既然你问了这么一个不精确的问题,你会得到一个不精确的答案——用更多细节更新你的问题,你会得到一个更好的答案
使用 helm 可以帮助您解决这个问题,因为清单受 golang 模板评估的影响;因此:
# values.yaml
instance_type: m5.large
---
# templates/deployment.yaml
{{ $mem := "2Gi" }}
{{ if (hasSuffix .Values.instance_type ".xlarge") }}
{{ $mem = "4Gi"
{{ end }}
spec:
template:
spec:
containers:
- resources:
requests:
memory: {{ $mem }}
然后安装它,用户可以选择他们拥有的节点大小:
$ helm install --set instance_type=r5.xlarge my-release my/chart
相反,如果您的意思是您有一个混合集 if 实例,并且您希望您的一个Deployment 根据其目标节点上可用的空间来调整其内存设置,那么您将需要一个Mutating Admission Webhook,它可以使用任何业务规则您想调整resource:
即将计划的 Pod 的字段以根据您认为合适的方式设置其资源。您可以使用垂直 pod 自动缩放器作为灵感来源,因为它们在不同的时间尺度上做大致相同的事情
于 2020-03-08T03:03:22.343 回答