Укажите выделение памяти в JupyterHub? - PullRequest
0 голосов
/ 19 марта 2020

Мы внедряем JupyterHub в Kubernetes (в частности, AWS управляемый kubernetes “EKS”). Мы разворачиваем его через helm. Мы используем версию 0.8.2 JupyterHub.

Мы хотим знать:

(1) Каково распределение памяти по умолчанию для серверов ноутбуков?

(2) можно ли его увеличить? Как?

Для справки, это наша диаграмма руля:

auth:
  admin:
    access: true
    users:
      - REDACTED
  type: github
  github:
    clientId: "REDACTED"
    clientSecret: "REDACTED"
    callbackUrl: "REDACTED"
    org_whitelist:
      - "REDACTED"
  scopes:
    - read:org

singleuser:
  image:
    # Get the latest image tag at:
    # https://hub.docker.com/r/jupyter/datascience-notebook/tags/
    # Inspect the Dockerfile at:
    # https://github.com/jupyter/docker-stacks/tree/master/datascience-notebook/Dockerfile
    # name: jupyter/datascience-notebook
    # tag: 177037d09156
    name: REDACTED
    tag: REDACTED
    pullPolicy: Always
  storage:
    capacity: 32Gi

  lifecycleHooks:
    postStart:
      exec:
        command: ["/bin/sh", "-c", "touch ~/.env && chmod 777 ~/.env"]

hub:
  # cookie_max_age_days - determines how long we keep the github
  # cookie in the hub server (in days).
  # cull_idle_servers time out - determines how long it takes before
  # we kick out an inactive user and shut down their user server.
  extraConfig: |
    import sys
    c.JupyterHub.cookie_max_age_days = 2
    c.JupyterHub.services = [
        {
            "name": "cull-idle",
            "admin": True,
            "command": [sys.executable, "/usr/local/bin/cull_idle_servers.py", "--timeout=3600"],
        }
    ]

1 Ответ

1 голос
/ 19 марта 2020

Диаграммы jupyterhub v0.8.2 Запрос ресурсов памяти по умолчанию для каждого singleuser модуля / контейнера равен 1G в значениях диаграммы . Обратите внимание, что это ресурс request, который сообщает планировщику Kubernetes, что контейнер должен требовать на узле. Контейнер может свободно использовать доступную память на узле, если это необходимо. Kubernetes должен начинать извлекать модули, только когда весь узел находится под давлением памяти, которое обычно меньше 100 МБ свободной памяти

Чтобы изменить это, переопределите значение singleuser.memory.guarantee, чтобы задать другой запрос (не знаю, почему они изменил имя).

singleuser:
  memory:
    guarantee: '1024Mi'

Другой вариант - установить хард limit, при котором контейнер может быть убит. По умолчанию в шлеме нет ограничений значения по умолчанию для диаграммы . Чтобы ввести ограничение, переопределите значение singleuser.memory.limit при запуске helm.

singleuser:
  memory:
    limit: '1024Mi'

Если вы смотрите на общее управление использованием, вы можете посмотреть квоты ресурсов в пространстве имен у вас запущен jupyterhub, так как похоже, что любые из приведенных выше настроек будут для каждого пользователя / отдельного пользователя.

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