kubernetes - 如何在 Kubernetes 中部署具有不同资源限制的 daemonset?
问题描述
我需要在 Kubernetes 中部署 daemonset,但是不同节点中的每个 pod 对不同硬件类型需要不同的内存和 cpu 请求。
解决方案
既然你问了这么一个不精确的问题,你会得到一个不精确的答案——用更多细节更新你的问题,你会得到一个更好的答案
使用 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 自动缩放器作为灵感来源,因为它们在不同的时间尺度上做大致相同的事情
推荐阅读
- c++ - 类中数据成员的映射
- javascript - 在 node.js API 中上传和处理多个文件
- python - 如何将外键ID传递给表单?或将表单链接到外键值 DJango
- php - 如果在 foreach 中不为空,则将变量包含到数组中
- java - 如何构建openCSV CSVReader
- python - 如何从python中的变量中删除某些单词和数字
- reactjs - React Saleor 产品类别
- postgresql - PostgreSQL - 我应该只为其他还没有索引的列创建索引吗?
- amazon-web-services - 上传大约 100 个小文件,S3 事件通知丢失
- python - 如何正确屏蔽卷积神经网络中的值