Удаление запроса ЦП по умолчанию и ограничений на GCP Kubernetes - PullRequest
0 голосов
/ 19 сентября 2019

Kubernetes в Google Cloud Platform настраивает запрос и ограничение ЦП по умолчанию.

Я использую блоки deamonsets и блоки deamonset должны использовать как можно больше CPU.

Возможно ручное увеличение верхнего предела, но верхняя граница должна быть переконфигурирована в случае новых узлов, и верхняя граница должна быть установлена ​​намного ниже, чем то, что доступно на узле, для того, чтобы иметь обновляемые обновления, позволяющие планировать pods.

Это требует много ручных действий, и некоторые ресурсы просто не используются большую часть времени.Есть ли способ полностью удалить ограничение ЦП по умолчанию, чтобы модули могли использовать все доступные ЦП?

Ответы [ 4 ]

2 голосов
/ 20 сентября 2019

Ограничение ресурса можно настроить двумя способами.

На уровне объекта:

kubectl edit limitrange limits

Этот объект создается по умолчанию, и его значение равно 100 м (1/10 ЦП)и когда модуль достигает этого предела, он просто убивается.


На уровне манифеста: использование statefulSet, DaemonSet и т. д. через файл yaml и настройка на

spec.containers.resources

это выглядиткак это:

spec:
  containers:
    resources:
      limits:
        memory: 200Mi
      requests:
        cpu: 100m
        memory: 200 Mi

Как уже упоминалось, вы можете изменить конфигурацию или просто удалить их, чтобы снять ограничения.


Однако у них есть некоторые причины, по которым эти ограничения были реализованы.Я нашел видео от Гуглера, рассказывающего об этом, посмотрите! [1]

2 голосов
/ 20 сентября 2019

GKE по умолчанию создает LimitRange объект с именем limits в пространстве имен default, выглядящий следующим образом:

apiVersion: v1
kind: LimitRange
metadata:
  name: limits
spec:
  limits:
  - defaultRequest:
      cpu: 100m
    type: Container

Итак, если вы хотите изменить это,Вы можете отредактировать его:

kubectl edit limitrange limits

Или удалить его полностью:

kubectl delete limitrange limits

Примечание: политики в объектах LimitRange применяются LimitRangerконтроллер доступа , который по умолчанию включен в GKE.

2 голосов
/ 19 сентября 2019

Диапазон ограничения - это политика ограничения ресурса элементом Pod или контейнером в пространстве имен.

Диапазон ограничения, определенный объектом LimitRange, предоставляет ограничения, которые могут:

  • Обеспечение минимального и максимального использования вычислительных ресурсов для модуля или контейнера в пространстве имен.

  • Выполнение минимального и максимального запроса хранения для PersistentVolumeClaim вПространство имен.

  • Обеспечение соотношения между запросом и лимитом для ресурса в пространстве имен.
  • Установка запроса / лимита по умолчанию для вычислительных ресурсов в пространстве имен и автоматическивставьте их в контейнеры во время выполнения.

Вам необходимо найти ресурс LimitRange вашего пространства имен и удалить определенные spec.limits.default.cpu и spec.limits.defaultRequest.cpu (или просто удалить LimitRange для удаления всех ограничений).

1 голос
/ 19 сентября 2019

Помимо диапазона пределов, упомянутого Эдуардо Байтелло, вы также должны обратить внимание на контроллеры доступа , которые могут перехватывать запросы к API Kubernetes и изменять их (например, добавлять ограничения и другие значения по умолчанию).

...