#kubernetes #kubernetes-pod
#kubernetes #kubernetes-pod
Вопрос:
я хотел бы знать, как я могу назначить ресурсы памяти работающему модулю?
я пытался kubectl get po foo-7d7dbb4fcd-82xfr -o yaml > pod.yaml
, но когда я запускаю команду kubectl apply -f pod.yaml
The Pod "foo-7d7dbb4fcd-82xfr" is invalid: spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds` or `spec.tolerations` (only additions to existing tolerations)
заранее спасибо за вашу помощь .
Ответ №1:
Pod — это минимальные ресурсы kubernetes, и он не поддерживает редактирование, как вы хотите.
Я предлагаю вам использовать deployment для запуска вашего модуля, поскольку это «менеджер модулей», в котором у вас есть множество дополнительных функций, таких как самовосстановление модуля, живучесть / читаемость модуля и т. Д…
Вы можете определить ресурсы в файле развертывания следующим образом:
apiVersion: apps/v1
kind: Deployment
metadata:
name: echo
spec:
replicas: 1
selector:
matchLabels:
app: echo
template:
metadata:
labels:
app: echo
spec:
containers:
- name: echo
image: mendhak/http-https-echo
resources:
limits:
cpu: 15m
memory: 100Mi
requests:
cpu: 15m
memory: 100Mi
ports:
- name: http
containerPort: 80
Ответ №2:
Как упоминал @KoopaKiller, вы не можете обновить spec.containers.resources
поле, это упоминается в спецификации объекта контейнера:
Вычислите ресурсы, необходимые для этого контейнера. Невозможно обновить.
Вместо этого вы можете развернуть свои модули с помощью Deployment object . В этом случае, если вы измените конфигурацию ресурсов для своих модулей, контроллер развертывания развернет обновленные версии ваших модулей.