Поскольку вы задали такой неточный вопрос, вы получите неточный ответ - обновите свой вопрос с более подробной информацией, и вы получите лучший ответ
Использование 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
Если вместо этого вы имеете в виду, что у вас есть смешанный набор, если экземпляров, и вы хотите, чтобы ваше one Deployment настроило параметры памяти в соответствии с запасом, доступным на целевом узле, тогда вам понадобится Mutating Admission Webhook , который может использовать любые бизнес-правила, которые вы используете Вы хотите настроить поле resource:
в модуле, который должен быть запланирован на ближайшее время, чтобы настроить ресурсы по своему усмотрению. В качестве источника вдохновения вы можете использовать вертикальный автонабиратель pod , поскольку они делают примерно одно и то же только в другой временной шкале