Как сделать так, чтобы автоматическое масштабирование кластера работало GKE / digitalocean для вида работ с различными требованиями к памяти? - PullRequest
0 голосов
/ 22 марта 2020

У меня 1 узел K8 кластера на digitalocean с 1cpu / 2gbRAM
и 3 узла кластера на google cloud с 1cpu / 2gbRAM Я выполнил два задания по отдельности на каждой облачной платформе с включенным автоматическим масштабированием.

Первое задание имело запрос памяти 200Mi * ​​1004 *

apiVersion: batch/v1
kind: Job
metadata:
  name: scaling-test
spec:
  parallelism: 16
  template:
    metadata:
      name: scaling-test
    spec:
      containers:
        - name: debian
          image: debian
          command: ["/bin/sh","-c"]
          args: ["sleep 300"]
          resources:
            requests:
              cpu: "100m"
              memory: "200Mi"
      restartPolicy: Never

Дополнительные узлы (1cpu / 2gbRAM) были автоматически добавлены в кластер, и после завершения задания дополнительный узел был автоматически удален.

После этого я выполнил второе задание с запросом памяти 4500Mi * ​​1009 *

apiVersion: batch/v1
kind: Job
metadata:
  name: scaling-test2
spec:
  parallelism: 3
  template:
    metadata:
      name: scaling-test2
    spec:
      containers:
        - name: debian
          image: debian
          command: ["/bin/sh","-c"]
          args: ["sleep 5"]
          resources:
            requests:
              cpu: "100m"
              memory: "4500Mi"
      restartPolicy: Never

После проверки, позднее задание осталось в состоянии ожидания. Я проверил журнал событий модуля и вижу следующую ошибку.

0/5 nodes are available: 5 Insufficient memory    **source: default-scheduler**
pod didn't trigger scale-up (it wouldn't fit if a new node is added): 1 Insufficient memory **source:cluster-autoscaler**

кластер не масштабировался автоматически для требуемого запрошенного ресурса для работы. Возможно ли это с помощью kubernetes?

1 Ответ

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

CA не добавляет узлы в кластер, если это не делает планируемым модуль. Он будет рассматривать только добавление узлов в группы узлов, для которых он был настроен. Поэтому одной из причин, по которой кластер не масштабируется, может быть то, что модуль имеет слишком большой размер (например, 4500Mi памяти). Другая возможная причина заключается в том, что все подходящие группы узлов уже имеют максимальный размер.

...