Узел AWS EKS - ограничение громкости - PullRequest
0 голосов
/ 07 июня 2019

Мы недавно обновили нашу среду EKS до v1.12.7. После обновления мы заметили, что теперь есть «выделяемый» ресурс с именем attachable-volumes-aws-ebs, и в нашей среде у нас есть много томов EBS, подключенных к каждому узлу (все они были сгенерированы динамически через PVC).

Тем не менее, на каждом узле в разделе «выделенные ресурсы» показаны 0 подключенных томов:

Allocatable:
 attachable-volumes-aws-ebs:  25
 cpu:                         16
 ephemeral-storage:           96625420948
 hugepages-1Gi:               0
 hugepages-2Mi:               0
 memory:                      64358968Ki
 pods:                        234
...
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource                    Requests           Limits
  --------                    --------           ------
  cpu                         5430m (33%)        5200m (32%)
  memory                      19208241152 (29%)  21358Mi (33%)
  attachable-volumes-aws-ebs  0                  0

Из-за этого планировщик продолжает пытаться подключать новые тома к узлам, к которым уже подключено 25 томов.

Как мы можем заставить kubernetes распознавать подключенные тома, чтобы планировщик мог действовать соответственно?

1 Ответ

0 голосов
/ 19 июня 2019

Сначала проверьте статус ваших модулей, они могут иметь статус в ожидании , поэтому, вероятно, ваши тома не учитываются.Ваш том может застрять в подключенном состоянии при использовании нескольких PersistentVolumeClaim .

Возможно, ваши тома не подключены из-за NodeWithImpairedVolumes = true: NoSchedule флага и одновременнономер вашего attachable-volume-aws-ebs .

Попробуйте выполнить:

$ kubectl taint nodes node1 key:NoSchedule-

на каждом узле с этой меткой (NodeWithImpairedVolumes= true: NoSchedule).

Если вы используете awsElasticBlockStore , при использовании тома awsElasticBlockStore существуют некоторые ограничения:

  • узлы, на которых работают модули, должны бытьДля экземпляров AWS EC2 эти экземпляры должны находиться в той же области и зоне доступности, что и том EBS. EBS поддерживает только один экземпляр EC2, монтирующий том.

Можно использовать count / * квота ресурса, объект взимается с квоты, если он существует в хранилище сервера.Эти типы квот полезны для защиты от исчерпания ресурсов хранения. Используйте count / persistentvolumeclaims .

Allocatable будет вычисляться Kubelet и сообщаться серверу API.Определено:

[Выделено] = [Емкость узла] - [Зарезервировано в кубе] - [Зарезервировано в системе] - [Порог жесткого выселения]

Примечание. Поскольку использование ядра может колебаться и находится вне контроля kubernetes, оно будет отображаться как отдельное значение (возможно, через API метрик).Сообщение об использовании ядра выходит за рамки этого предложения.

...