Неоправданно недостаточно процессора для масштабирования развертывания - PullRequest
2 голосов
/ 25 июня 2019

Я пытаюсь понять масштабирование развертывания с помощью Load Balancer. Я создал кластер Kubernetes в Google Cloud с 6 узлами: 2 ядра и 13 ГБ ОЗУ каждое (n1-highmem-2) и запустил 5 модулей Pod и 1 Load Balancer. Каждый Pod имеет ограничение в 5,1 ГБ и 1 процессор. Когда я попытался масштабировать свое развертывание до 10 модулей, я получил ошибку, что мой номер процессора слишком низок. Как? У меня есть кластер с 12 ядрами и 78 ГБ оперативной памяти. Вот мой файл yaml:

apiVersion: v1
kind: Namespace
metadata:
   name: production
   labels:
      name: production
---
apiVersion: v1
kind: Service
metadata:
   name: my-service
   namespace: production
   labels:
      run: mypod
spec:
   type: LoadBalancer
   ports:
      - port: 8050
        targetPort: 8050
        protocol: TCP
        name: http
   selector:
      run: mypod
---
apiVersion: apps/v1
kind: Deployment
metadata:
   name: test
   namespace: production
spec:
   selector:
      matchLabels:
         run: mypod
   replicas: 5
   template:
      metadata:
         namespace: production
         labels:
            run: mypod
      spec:
         containers:
            - name: test
              image: my-hello-world
              ports:
              - containerPort: 8050
              resources:
                 limits:
                    cpu: "1"
                    memory: "5.1Gi"
                 requests:
                    cpu: "1"
                    memory: "500Mi"

1 Ответ

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

Другие контейнеры могут запрашивать ЦП из вашего кластера (включая kube-system).

Вы запрашиваете 1 ЦП для каждой реплики test контейнера, но имейте в виду, что каждый контейнер должен быть запланированв одном из узлов (в том, что каждый узел имеет только 2 доступных ЦП).Это означает: если у узла есть один контейнер kube-system, который запрашивает любое количество ЦП, узел не может позволить себе более одного контейнера test.Например:

Узел 1:

  • ситцевый узел-rqcw7 - 250 м
  • test-83h1d - 1000 м
  • test-kd93h- 1000m # <----- Это нельзя запланировать, поскольку узел уже использует 1250m </li>

Используйте команду kubectl describe nodes, и вы должны выяснить, какие контейнеры планируются в какомузлы, включая их запросы к процессору.

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