назначить ресурсы памяти работающему модулю?

#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 . В этом случае, если вы измените конфигурацию ресурсов для своих модулей, контроллер развертывания развернет обновленные версии ваших модулей.