Как убить Docker-контейнер, когда он достигает набора использования памяти или ограничения процессора - PullRequest
0 голосов
/ 15 июня 2019

У меня есть док-контейнер, который работает в модуле, где мне нужно перезапустить модуль / контейнер, когда он превышает использование памяти или ограничение ЦП.Как настроить это в файле Docker

1 Ответ

2 голосов
/ 15 июня 2019

Пределы ЦП и памяти не могут быть заданы при сборке докера, и его нельзя настроить в Docker File.Это проблема планирования.Вы можете запустить докер с помощью команды docker run с разными флагами для управления ресурсами.См. Официальный документ Docker , где указаны эти контрольные флаги для docker run.

Поскольку ваш вопрос помечен kubernetes, существует kubernetes способ ограничить ваши ресурсы.Вы хотели бы добавить resources в спецификации для этих deployment или pod yaml.Например:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: your_deployment
  labels:
    app: your_app
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: your_app
    spec:
      containers:
      - name: your_container
        image: your_image
        resources:
          limits:
            cpu: "500m"
            memory: "128Mi"
          requests:
            cpu: "250m"
            memory: "64Mi"
        ...

requests влияет на то, как модуль Docker планируется на узлах.Memory limit определяет, когда докер будет убит за OOM, а cpu limit определяет, как будет ограничено использование процессора контейнера (модуль не будет убит).

Значение cpu отличается для каждого поставщика облачных услуг.Для получения дополнительной информации см. Управление вычислительными ресурсами для Kubernetes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...